STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228116
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/58138597?noj=FRM58138597-10DC" width="1" height="1"></div>

Zoo Transport - part physics stacker, part driving game.swf

This is the info page for
Flash #90121

(Click the ID number above for more basic data on this flash file.)


Text
100%

copy

RESET

NEXT

zoom in

zoom out

ZONA DESCARGA

AGUA

INFLUENCIA
AGUA

cancel

cancel

submit

submit

Num. a salvar

Fondo

1

Minimap

submit level

level name

author name

comentaries

SUBMITED!

AAAAA

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var localPosition:b2Vec2; public var radius:Number; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):int{ var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ _arg2[0] = 0; return (e_startsInsideCollide); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (e_missCollide); }; _local17 = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (e_hitCollide); }; return (e_missCollide); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function b2FilterData(){ categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; super(); } public function Copy():b2FilterData{ var _local1:b2FilterData; _local1 = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_vertices:Array; public var m_normals:Array; private var s_supportVec:b2Vec2; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:Number; _local4 = _arg1.R; _local5 = (_arg2.x - _arg1.position.x); _local6 = (_arg2.y - _arg1.position.y); _local7 = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); _local8 = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); _local9 = 0; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public function GetCoreVertices():Array{ return (m_coreVertices); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):int{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (e_missCollide); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (e_hitCollide); }; _arg2[0] = 0; return (e_startsInsideCollide); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function ComputeMass(_arg1:b2MassData):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; var _local10:int; var _local11:Number; _local5 = _arg1.R; _local6 = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); _local7 = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); _local8 = 0; _local4 = m_coreVertices[0]; _local9 = ((_local4.x * _local6) + (_local4.y * _local7)); _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetNormals():Array{ return (m_normals); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local3:int; var _local4:Number; var _local5:Number; m_sweepRadius = 0; _local3 = 0; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local5:Array; var _local6:Number; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Shape { public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_next:b2Shape; public var m_restitution:Number; public var m_userData; public var m_isSensor:Boolean; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_hitCollide:int = 1; public static const e_missCollide:int = 0; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; public static const e_startsInsideCollide:int = -1; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):int{ return (e_missCollide); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ShapeDef { public var isSensor:Boolean;// = false public var density:Number;// = 0 public var type:int; public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var friction:Number;// = 0.2 public function b2ShapeDef(){ type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; isSensor = false; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_worldAABB:b2AABB; public var m_bounds:Array; public var m_freeProxy:uint; public var m_quantizationFactor:b2Vec2; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_querySortKeys:Array; public var m_pairManager:b2PairManager; public var m_queryResultCount:int; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local4:Number; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_querySortKeys = new Array(b2Settings.b2_maxProxies); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; m_querySortKeys[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; _local4 = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); _local10 = 0; _local11 = 0; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local11:uint; var _local12:int; var _local13:int; var _local14:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local11 = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function AddProxyResult(_arg1:uint, _arg2:b2Proxy, _arg3:Number, _arg4:Function):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:uint; var _local9:Number; var _local10:uint; _local5 = _arg4(_arg2.userData); if (_local5 < 0){ return; }; _local6 = 0; while ((((_local6 < m_queryResultCount)) && ((m_querySortKeys[_local6] < _local5)))) { _local6++; }; _local7 = _local5; _local8 = _arg1; m_queryResultCount = (m_queryResultCount + 1); if (m_queryResultCount > _arg3){ m_queryResultCount = _arg3; }; while (_local6 < m_queryResultCount) { _local9 = m_querySortKeys[_local6]; _local10 = m_queryResults[_local6]; m_querySortKeys[_local6] = _local7; m_queryResults[_local6] = _local8; _local7 = _local9; _local8 = _local10; _local6++; }; } public function QuerySegment(_arg1:b2Segment, _arg2, _arg3:int, _arg4:Function):int{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:int; var _local10:Number; var _local11:Number; var _local12:Array; var _local13:Array; var _local14:Array; var _local15:int; var _local16:int; var _local17:uint; var _local18:b2Proxy; var _local19:uint; var _local20:uint; var _local21:Array; var _local22:Array; var _local23:Boolean; var _local24:Number; var _local25:Number; var _local26:int; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:uint; _local5 = 1; _local6 = ((_arg1.p2.x - _arg1.p1.x) * m_quantizationFactor.x); _local7 = ((_arg1.p2.y - _arg1.p1.y) * m_quantizationFactor.y); _local8 = ((_local6 < -(Number.MIN_VALUE))) ? -1 : ((_local6 > Number.MIN_VALUE)) ? 1 : 0; _local9 = ((_local7 < -(Number.MIN_VALUE))) ? -1 : ((_local7 > Number.MIN_VALUE)) ? 1 : 0; _local10 = (m_quantizationFactor.x * (_arg1.p1.x - m_worldAABB.lowerBound.x)); _local11 = (m_quantizationFactor.y * (_arg1.p1.y - m_worldAABB.lowerBound.y)); _local12 = new Array(); _local13 = new Array(); _local12[0] = (uint(_local10) & (b2Settings.USHRT_MAX - 1)); _local12[1] = (uint(_local11) & (b2Settings.USHRT_MAX - 1)); _local13[0] = (_local12[0] + 1); _local13[1] = (_local12[1] + 1); _local14 = new Array(); _local21 = [_local19]; _local22 = [_local20]; Query(_local21, _local22, _local12[0], _local13[0], m_bounds[0], (2 * m_proxyCount), 0); if (_local8 >= 0){ _local15 = (_local22[0] - 1); } else { _local15 = _local21[0]; }; Query(_local21, _local22, _local12[1], _local13[1], m_bounds[1], (2 * m_proxyCount), 1); if (_local9 >= 0){ _local16 = (_local22[0] - 1); } else { _local16 = _local21[0]; }; if (_arg4 != null){ _local27 = 0; while (_local27 < m_queryResultCount) { m_querySortKeys[_local27] = _arg4(m_proxyPool[m_queryResults[_local27]].userData); _local27++; }; _local27 = 0; while (_local27 < (m_queryResultCount - 1)) { _local28 = m_querySortKeys[_local27]; _local29 = m_querySortKeys[(_local27 + 1)]; if (((_local28)<0) ? (_local29 >= 0) : (((_local28 > _local29)) && ((_local29 >= 0)))){ m_querySortKeys[(_local27 + 1)] = _local28; m_querySortKeys[_local27] = _local29; _local30 = m_queryResults[(_local27 + 1)]; m_queryResults[(_local27 + 1)] = m_queryResults[_local27]; m_queryResults[_local27] = _local30; --_local27; if (_local27 == -1){ _local27 = 1; }; } else { _local27++; }; }; while ((((m_queryResultCount > 0)) && ((m_querySortKeys[(m_queryResultCount - 1)] < 0)))) { m_queryResultCount--; }; }; _local23 = true; if ((((_local15 < 0)) || ((_local15 >= (m_proxyCount * 2))))){ _local23 = false; }; if ((((_local16 < 0)) || ((_local16 >= (m_proxyCount * 2))))){ _local23 = false; }; if (_local23){ if (_local8 != 0){ if (_local8 > 0){ _local15++; if (_local15 == (m_proxyCount * 2)){ _local23 = false; }; } else { --_local15; if (_local15 < 0){ _local23 = false; }; }; _local24 = ((m_bounds[0][_local15].value - _local10) / _local6); }; if (_local9 != 0){ if (_local9 > 0){ _local16++; if (_local16 == (m_proxyCount * 2)){ _local23 = false; }; } else { --_local16; if (_local16 < 0){ _local23 = false; }; }; _local25 = ((m_bounds[1][_local16].value - _local11) / _local7); }; }; while (_local23) { if ((((_local9 == 0)) || (((!((_local8 == 0))) && ((_local24 < _local25)))))){ if (_local24 > _local5){ break; }; if (((_local8 > 0)) ? m_bounds[0][_local15].IsLower() : m_bounds[0][_local15].IsUpper()){ _local17 = m_bounds[0][_local15].proxyId; _local18 = m_proxyPool[_local17]; if (_local9 >= 0){ if ((((_local18.lowerBounds[1] <= (_local16 - 1))) && ((_local18.upperBounds[1] >= _local16)))){ if (_arg4 != null){ AddProxyResult(_local17, _local18, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; } else { if ((((_local18.lowerBounds[1] <= _local16)) && ((_local18.upperBounds[1] >= (_local16 + 1))))){ if (_arg4 != null){ AddProxyResult(_local17, _local18, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; }; }; if (((((((!((_arg4 == null))) && ((m_queryResultCount == _arg3)))) && ((m_queryResultCount > 0)))) && ((_local24 > m_querySortKeys[(m_queryResultCount - 1)])))){ break; }; if (_local8 > 0){ _local15++; if (_local15 == (m_proxyCount * 2)){ break; }; } else { --_local15; if (_local15 < 0){ break; }; }; _local24 = ((m_bounds[0][_local15].value - _local10) / _local6); } else { if (_local25 > _local5){ break; }; if (((_local9 > 0)) ? m_bounds[1][_local16].IsLower() : m_bounds[1][_local16].IsUpper()){ _local17 = m_bounds[1][_local16].proxyId; _local18 = m_proxyPool[_local17]; if (_local8 >= 0){ if ((((_local18.lowerBounds[0] <= (_local15 - 1))) && ((_local18.upperBounds[0] >= _local15)))){ if (_arg4 != null){ AddProxyResult(_local17, _local18, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; } else { if ((((_local18.lowerBounds[0] <= _local15)) && ((_local18.upperBounds[0] >= (_local15 + 1))))){ if (_arg4 != null){ AddProxyResult(_local17, _local18, _arg3, _arg4); } else { m_queryResults[m_queryResultCount] = _local17; m_queryResultCount++; }; }; }; }; if (((((((!((_arg4 == null))) && ((m_queryResultCount == _arg3)))) && ((m_queryResultCount > 0)))) && ((_local25 > m_querySortKeys[(m_queryResultCount - 1)])))){ break; }; if (_local9 > 0){ _local16++; if (_local16 == (m_proxyCount * 2)){ break; }; } else { --_local16; if (_local16 < 0){ break; }; }; _local25 = ((m_bounds[1][_local16].value - _local11) / _local7); }; }; _local26 = 0; _local27 = 0; while ((((_local27 < m_queryResultCount)) && ((_local26 < _arg3)))) { _local18 = m_proxyPool[m_queryResults[_local27]]; _arg2[_local27] = _local18.userData; _local27++; _local26++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local26); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); _local6 = _arg3.upperBound.x; _local7 = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local4:b2Proxy; var _local5:int; var _local6:int; var _local7:int; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local4 = m_proxyPool[_arg1]; _local5 = (2 * m_proxyCount); _local6 = 0; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; _local7 = 0; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy; _local2 = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local12:uint; var _local13:b2Proxy; var _local14:b2BoundValues; var _local15:b2BoundValues; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local12 = (2 * m_proxyCount); _local13 = m_proxyPool[_arg1]; _local14 = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); _local15 = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; var _local7:b2Bound; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:Array; var _local9:int; var _local10:Array; var _local11:b2Mat22; var _local12:b2Vec2; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _local6 = _arg1.m_vertexCount; _local7 = _arg1.m_vertices; _local8 = _arg1.m_normals; _local9 = _arg4.m_vertexCount; _local10 = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; _local13 = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); _local14 = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; _local15 = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); _local16 = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; _local20 = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local21 = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; _local22 = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); _local23 = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); _local24 = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:Array; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:ClipVertex; var _local21:int; var _local22:int; var _local23:Number; _local7 = _arg2.m_vertexCount; _local8 = _arg2.m_normals; _local9 = _arg5.m_vertexCount; _local10 = _arg5.m_vertices; _local11 = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; _local14 = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); _local15 = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; _local16 = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; _local17 = 0; _local18 = Number.MAX_VALUE; _local19 = 0; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; _local21 = _local17; _local22 = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local7:int; var _local8:Array; var _local9:Number; var _local10:int; var _local11:Array; var _local12:Number; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local15:b2XForm; var _local16:b2XForm; var _local17:int; var _local18:uint; var _local19:Number; var _local20:Number; var _local21:Array; var _local22:int; var _local23:Array; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:b2Vec2; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Array; var _local33:Array; var _local34:int; var _local35:int; var _local36:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; _local7 = 0; _local8 = [_local7]; _local9 = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; _local10 = 0; _local11 = [_local10]; _local12 = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; _local15 = new b2XForm(); _local16 = new b2XForm(); _local19 = 0.98; _local20 = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; _local21 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); _local22 = _local13.m_vertexCount; _local23 = _local13.m_vertices; _local24 = _local23[_local17]; _local25 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; _local26 = b2Math.SubtractVV(_local37, _local25); _local27 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); _local28 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); _local29 = b2Math.b2Dot(_local28, _local25); _local30 = -(b2Math.b2Dot(_local27, _local25)); _local31 = b2Math.b2Dot(_local27, _local37); _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); _local35 = 0; _local36 = 0; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:Array; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:int; var _local17:Number; var _local18:int; var _local19:Number; var _local20:int; var _local21:Number; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; _local6 = _arg2.m_vertexCount; _local7 = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; _local10 = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); _local11 = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); _local12 = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); _local13 = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); _local14 = 0; _local15 = -(Number.MAX_VALUE); _local16 = 0; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; _local18 = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); _local19 = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; _local20 = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; _local21 = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); _local10 = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:b2ManifoldPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = _arg2.m_radius; _local16 = _arg4.m_radius; _local17 = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; _local19 = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); _local20 = (0.5 * (_local8 + _local10)); _local21 = (0.5 * (_local9 + _local11)); _local22 = (_local20 - _arg3.position.x); _local23 = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:Array; var _local23:Array; var _local24:int; var _local25:int; var _local26:int; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = _arg2.m_vertexCount; _local22 = _arg2.m_vertices; _local23 = _arg2.m_normals; _local24 = 0; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; _local25 = _local18; _local26 = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; _local27 = _local22[_local26]; _local28 = (_local27.x - _local11.x); _local29 = (_local27.y - _local11.y); _local30 = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local31 = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var friction:Number; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local4:Number; var _local5:int; var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local8:Array; var _local9:Array; var _local10:Array; var _local11:int; var _local12:Number; var _local13:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; _local8 = s_p1s; _local9 = s_p2s; _local10 = s_points; _local11 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local12 = 0; _local13 = 20; _local14 = 0; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local14:b2Vec2; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; _local14 = _arg4[2]; _local15 = _local6.x; _local16 = _local6.y; _local17 = _local7.x; _local18 = _local7.y; _local19 = _local8.x; _local20 = _local8.y; _local21 = (_local17 - _local15); _local22 = (_local18 - _local16); _local23 = (_local19 - _local15); _local24 = (_local20 - _local16); _local25 = (_local19 - _local17); _local26 = (_local20 - _local18); _local27 = -(((_local15 * _local21) + (_local16 * _local22))); _local28 = ((_local17 * _local21) + (_local18 * _local22)); _local29 = -(((_local15 * _local23) + (_local16 * _local24))); _local30 = ((_local19 * _local23) + (_local20 * _local24)); _local31 = -(((_local17 * _local25) + (_local18 * _local26))); _local32 = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; _local33 = ((_local21 * _local24) - (_local22 * _local23)); _local34 = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); _local36 = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; _local37 = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; _local38 = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); _local39 = (_local36 * _local38); _local40 = (_local37 * _local38); _local41 = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int; var _local8:int; _local7 = _arg3.m_type; _local8 = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; _local12 = -(_local7.x); _local13 = -(_local7.y); _local14 = (_local6.x - _local7.x); _local15 = (_local6.y - _local7.y); _local16 = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function b2Pair(){ userData = null; super(); } public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint; _local5 = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local3:int; var _local4:Array; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; _local3 = 0; _local4 = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local4:uint; var _local5:uint; var _local6:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; _local4 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local5 = m_hashTable[_local4]; _local6 = null; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair; _local4 = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } public function ExtendForward(_arg1:b2AABB):void{ var dX:Number; var dY:Number; var greaterthan0:*; var lambda:Number; var aabb = _arg1; dX = (p2.x - p1.x); dY = (p2.y - p1.y); greaterthan0 = function (_arg1){ return ((_arg1 > 0)); }; lambda = Math.min(((dX > 0)) ? ((aabb.upperBound.x - p1.x) / dX) : ((dX < 0)) ? ((aabb.lowerBound.x - p1.x) / dX) : Number.POSITIVE_INFINITY, ((dY > 0)) ? ((aabb.upperBound.y - p1.y) / dY) : ((dY < 0)) ? ((aabb.lowerBound.y - p1.y) / dY) : Number.POSITIVE_INFINITY); p2.x = (p1.x + (dX * lambda)); p2.y = (p1.y + (dY * lambda)); } public function Extend(_arg1:b2AABB):void{ ExtendForward(_arg1); ExtendBackward(_arg1); } public function ExtendBackward(_arg1:b2AABB):void{ var dX:Number; var dY:Number; var greaterthan0:*; var lambda:Number; var aabb = _arg1; dX = (-(p2.x) + p1.x); dY = (-(p2.y) + p1.y); greaterthan0 = function (_arg1){ return ((_arg1 > 0)); }; lambda = Math.min(((dX > 0)) ? ((aabb.upperBound.x - p2.x) / dX) : ((dX < 0)) ? ((aabb.lowerBound.x - p2.x) / dX) : Number.POSITIVE_INFINITY, ((dY > 0)) ? ((aabb.upperBound.y - p2.y) / dY) : ((dY < 0)) ? ((aabb.lowerBound.y - p2.y) / dY) : Number.POSITIVE_INFINITY); p1.x = (p2.x + (dX * lambda)); p1.y = (p2.y + (dY * lambda)); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:int; var _local20:int; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; _local7 = _arg1.m_sweepRadius; _local8 = _arg3.m_sweepRadius; _local9 = _arg2.t0; _local10 = (_arg2.c.x - _arg2.c0.x); _local11 = (_arg2.c.y - _arg2.c0.y); _local12 = (_arg4.c.x - _arg4.c0.x); _local13 = (_arg4.c.y - _arg4.c0.y); _local14 = (_arg2.a - _arg2.a0); _local15 = (_arg4.a - _arg4.a0); _local16 = 0; _local17 = s_p1; _local18 = s_p2; _local19 = 20; _local20 = 0; _local21 = 0; _local22 = 0; _local23 = 0; _local24 = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { import Box2D.Common.*; public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { import Box2D.Common.*; public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; _local3 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Box2D.Common.*; public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { import Box2D.Common.*; public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = ((2 / 180) * b2_pi); public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = Math.PI; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = ((8 / 180) * b2_pi); public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2ManifoldPoint; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:int; var _local3:int; var _local4:b2Body; var _local5:b2Body; _local2 = m_manifoldCount; Evaluate(_arg1); _local3 = m_manifoldCount; _local4 = m_shape1.m_body; _local5 = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ var _local3:int; var _local4:int; var _local5:b2ContactRegister; var _local6:Function; if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; _local3 = _arg1.m_shape1.m_type; _local4 = _arg1.m_shape2.m_type; _local5 = s_registers[_local3][_local4]; _local6 = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local4:int; var _local5:int; var _local6:b2ContactRegister; var _local7:Function; var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5]; _local7 = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var equalizedMass:Number; public var tangentMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactResult { public var normal:b2Vec2; public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:int; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; _local9 = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; _local2 = 0; _local5 = 0; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local19:int; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; _local19 = 0; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ var _local3:b2ManifoldPoint; m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; _local3 = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local6:b2Body; var _local7:b2Body; var _local8:Array; var _local9:b2ContactPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local6 = m_shape1.m_body; _local7 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); _local8 = [false, false]; _local9 = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:int; var _local9:Array; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; _local5 = m_shape1.m_body; _local6 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); _local9 = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_mass:Number; public var m_u:b2Vec2; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_localAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; if (m_frequencyHz > 0){ return (true); }; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); _local10 = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); _local13 = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); _local16 = (_local15 * m_u.x); _local17 = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var dampingRatio:Number; public var frequencyHz:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); _local2 = _arg1.joint1.m_type; _local3 = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); _local3 = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); _local4 = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular2:Number; public var angular1:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; _local3 = null; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_target:b2Vec2; public var m_impulse:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); _local9 = (_arg1.dt * m_impulse.x); _local10 = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_impulse.x; _local13 = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); _local14 = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_force:Number; public var m_localYAxis1:b2Vec2; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_linearJacobian:b2Jacobian; public var m_enableMotor:Boolean; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local5 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local8 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; _local20 = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local6 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_motorForce:Number; public var m_pivotMass:b2Mat22; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_referenceAngle:Number; public var m_lowerAngle:Number; public var m_upperAngle:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local8 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); _local22 = tImpulse.x; _local23 = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); _local24 = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function GetMotorTorque():Number{ return (m_motorForce); } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); _local15 = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_xf:b2XForm; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_shapeCount:int; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ var _local3:b2Mat22; var _local4:b2Vec2; m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; var _local7:int; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); _local5 = m_xf.R; _local6 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; _local7 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); _local4 = m_xf.R; _local5 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); _local6 = false; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local5 = true; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); _local3 = m_xf.R; _local4 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; _local5 = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ var _local2:b2Shape; var _local3:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = false; while (_local2 != null) { if (_local2 == _arg1){ _local2 = _arg1.m_next; _local3 = true; break; }; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22; var _local3:b2Vec2; _local2 = m_xf.R; _local3 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function RayCollide(_arg1, _arg2:b2Shape):Boolean{ if (!_arg1){ return (true); }; return (ShouldCollide((_arg1 as b2Shape), _arg2)); } public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData; var _local4:b2FilterData; var _local5:Boolean; _local3 = _arg1.GetFilterData(); _local4 = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; _local5 = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.m_body; _local6 = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.m_shape1; _local3 = _arg1.m_shape2; _local4 = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; _local5 = _local2.m_body; _local6 = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local8:b2ContactSolver; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; _local8 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_raycastSegment:b2Segment; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_raycastUserData; public var m_allowSleep:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_raycastNormal:b2Vec2; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_debugDraw:b2DebugDraw; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; m_raycastNormal = new b2Vec2(); m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.m_body1; _local3 = _arg1.m_body2; _local4 = _local2.m_xf; _local5 = _local3.m_xf; _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function GetContactCount():int{ return (m_contactCount); } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local8:b2Island; var _local9:int; var _local10:Array; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; _local3 = _arg1.m_body1; _local4 = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function Raycast(_arg1:b2Segment, _arg2:Array, _arg3:int, _arg4:Boolean, _arg5):int{ var _local6:Array; var _local7:int; var _local8:int; _local6 = new Array(_arg3); m_raycastSegment = _arg1; m_raycastUserData = _arg5; if (_arg4){ _local7 = m_broadPhase.QuerySegment(_arg1, _local6, _arg3, RaycastSortKey); } else { _local7 = m_broadPhase.QuerySegment(_arg1, _local6, _arg3, RaycastSortKey2); }; _local8 = 0; while (_local8 < _local7) { _arg2[_local8] = _local6[_local8]; _local8++; }; return (_local7); } public function RaycastSortKey2(_arg1:b2Shape){ var _local2:b2Body; var _local3:b2XForm; var _local4:Array; if (((m_contactFilter) && (!(m_contactFilter.RayCollide(m_raycastUserData, _arg1))))){ return (-1); }; _local2 = _arg1.GetBody(); _local3 = _local2.GetXForm(); _local4 = [0]; if (_arg1.TestSegment(_local3, _local4, m_raycastNormal, m_raycastSegment, 1) != b2Shape.e_hitCollide){ return (-1); }; return (_local4[0]); } public function RaycastOne(_arg1:b2Segment, _arg2:Array, _arg3:b2Vec2, _arg4:Boolean, _arg5):b2Shape{ var _local6:Array; var _local7:Number; var _local8:b2Shape; var _local9:b2XForm; _local6 = new Array(1); _local7 = Raycast(_arg1, _local6, 1, _arg4, _arg5); if (_local7 == 0){ return (null); }; if (_local7 > 1){ trace(_local7); }; _local8 = _local6[0]; _local9 = _local8.GetBody().GetXForm(); _local8.TestSegment(_local9, _arg2, _arg3, _arg1, 1); return (_local8); } public function CreateBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function RaycastSortKey(_arg1:b2Shape){ var _local2:b2Body; var _local3:b2XForm; var _local4:Array; if (((m_contactFilter) && (!(m_contactFilter.RayCollide(m_raycastUserData, _arg1))))){ return (-1); }; _local2 = _arg1.GetBody(); _local3 = _local2.GetXForm(); _local4 = [0]; if (_arg1.TestSegment(_local3, _local4, m_raycastNormal, m_raycastSegment, 1) == b2Shape.e_missCollide){ return (-1); }; return (_local4[0]); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//MusicManager (com.tanoku.sonido.MusicManager) package com.tanoku.sonido { import flash.utils.*; import flash.media.*; import gs.*; import flash.net.*; public class MusicManager { private var _soundsDict:Dictionary; private var _sounds:Array; public var Activo:Boolean;// = true private static var _instance:MusicManager; private static var _allowInstance:Boolean; public function MusicManager(){ Activo = true; super(); this._soundsDict = new Dictionary(true); this._sounds = new Array(); if (!MusicManager._allowInstance){ throw (new Error("Error: Use MusicManager.getInstance() instead of the new keyword.")); }; } public function fadeSound(_arg1:String, _arg2:Number=0, _arg3:Number=1):void{ var _local4:SoundChannel; _local4 = this._soundsDict[_arg1].channel; TweenLite.to(_local4, _arg3, {volume:_arg2}); } public function get sounds():Array{ return (this._sounds); } public function Mute():void{ Activo = !(Activo); if (Activo){ } else { stopAllSounds(); }; } public function getSoundDuration(_arg1:String):Number{ return (this._soundsDict[_arg1].sound.length); } public function setSoundVolume(_arg1:String, _arg2:Number):void{ var _local3:Object; var _local4:SoundTransform; _local3 = this._soundsDict[_arg1]; _local4 = _local3.channel.soundTransform; _local4.volume = _arg2; _local3.channel.soundTransform = _local4; } public function getSoundVolume(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.soundTransform.volume); } public function addLibrarySound(_arg1, _arg2:String):Boolean{ var _local3:int; var _local4:Object; var _local5:Sound; _local3 = 0; while (_local3 < this._sounds.length) { if (this._sounds[_local3].name == _arg2){ return (false); }; _local3++; }; _local4 = new Object(); _local5 = new (_arg1); _local4.name = _arg2; _local4.sound = _local5; _local4.channel = new SoundChannel(); _local4.position = 0; _local4.paused = true; _local4.volume = 1; _local4.startTime = 0; _local4.loops = 0; _local4.pausedByAll = false; this._soundsDict[_arg2] = _local4; this._sounds.push(_local4); return (true); } public function toString():String{ return (getQualifiedClassName(this)); } public function isSoundPaused(_arg1:String):Boolean{ return (this._soundsDict[_arg1].paused); } public function removeAllSounds():void{ var _local1:int; _local1 = 0; while (_local1 < this._sounds.length) { this._sounds[_local1] = null; _local1++; }; this._sounds = new Array(); this._soundsDict = new Dictionary(true); } public function getSoundPosition(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.position); } public function stopAllSounds(_arg1:Boolean=true):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.stopSound(_local3); }; } else { this.stopSound(_local3); }; _local2++; }; } public function removeSound(_arg1:String):void{ var _local2:int; _local2 = 0; while (_local2 < this._sounds.length) { if (this._sounds[_local2].name == _arg1){ this._sounds[_local2] = null; this._sounds.splice(_local2, 1); }; _local2++; }; delete this._soundsDict[_arg1]; } public function muteAllSounds():void{ var _local1:int; var _local2:String; _local1 = 0; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; this.setSoundVolume(_local2, 0); _local1++; }; } public function stopSound(_arg1:String):void{ var _local2:Object; _local2 = this._soundsDict[_arg1]; _local2.paused = true; _local2.channel.stop(); _local2.position = _local2.channel.position; } public function pauseAllSounds(_arg1:Boolean=true):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.pauseSound(_local3); }; } else { this.pauseSound(_local3); }; _local2++; }; } public function playAllSounds(_arg1:Boolean=false):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (this._soundsDict[_local3].pausedByAll){ this._soundsDict[_local3].pausedByAll = false; this.playSound(_local3); }; } else { this.playSound(_local3); }; _local2++; }; } public function addExternalSound(_arg1:String, _arg2:String, _arg3:Number=1000, _arg4:Boolean=false):Boolean{ var _local5:int; var _local6:Object; var _local7:Sound; _local5 = 0; while (_local5 < this._sounds.length) { if (this._sounds[_local5].name == _arg2){ return (false); }; _local5++; }; _local6 = new Object(); _local7 = new Sound(new URLRequest(_arg1), new SoundLoaderContext(_arg3, _arg4)); _local6.name = _arg2; _local6.sound = _local7; _local6.channel = new SoundChannel(); _local6.position = 0; _local6.paused = true; _local6.volume = 1; _local6.startTime = 0; _local6.loops = 0; _local6.pausedByAll = false; this._soundsDict[_arg2] = _local6; this._sounds.push(_local6); return (true); } public function unmuteAllSounds():void{ var _local1:int; var _local2:String; var _local3:Object; var _local4:SoundTransform; _local1 = 0; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; _local3 = this._soundsDict[_local2]; _local4 = _local3.channel.soundTransform; _local4.volume = _local3.volume; _local3.channel.soundTransform = _local4; _local1++; }; } public function isSoundPausedByAll(_arg1:String):Boolean{ return (this._soundsDict[_arg1].pausedByAll); } public function getSoundObject(_arg1:String):Sound{ return (this._soundsDict[_arg1].sound); } public function pauseSound(_arg1:String):void{ var _local2:Object; _local2 = this._soundsDict[_arg1]; _local2.paused = true; _local2.position = _local2.channel.position; _local2.channel.stop(); } public function playSound(_arg1:String, _arg2:Number=1, _arg3:Number=0, _arg4:int=0):void{ var _local5:Object; _local5 = this._soundsDict[_arg1]; _local5.volume = _arg2; if (Activo){ _local5.volume = _arg2; } else { _local5.volume = 0; }; _local5.startTime = _arg3; _local5.loops = _arg4; if (_local5.paused){ _local5.channel = _local5.sound.play(_local5.position, _local5.loops, new SoundTransform(_local5.volume)); } else { _local5.channel = _local5.sound.play(_arg3, _local5.loops, new SoundTransform(_local5.volume)); }; _local5.paused = false; } public static function getInstance():MusicManager{ if (MusicManager._instance == null){ MusicManager._allowInstance = true; MusicManager._instance = new (MusicManager); MusicManager._allowInstance = false; }; return (MusicManager._instance); } } }//package com.tanoku.sonido
Section 76
//SoundManager (com.tanoku.sonido.SoundManager) package com.tanoku.sonido { import flash.utils.*; import flash.media.*; import gs.*; import flash.net.*; public class SoundManager { private var _soundsDict:Dictionary; private var _sounds:Array; public var Activo:Boolean;// = true private static var _instance:SoundManager; private static var _allowInstance:Boolean; public function SoundManager(){ Activo = true; super(); this._soundsDict = new Dictionary(true); this._sounds = new Array(); if (!SoundManager._allowInstance){ throw (new Error("Error: Use SoundManager.getInstance() instead of the new keyword.")); }; } public function fadeSound(_arg1:String, _arg2:Number=0, _arg3:Number=1):void{ var _local4:SoundChannel; _local4 = this._soundsDict[_arg1].channel; TweenLite.to(_local4, _arg3, {volume:_arg2}); } public function get sounds():Array{ return (this._sounds); } public function Mute():void{ Activo = !(Activo); if (Activo){ unmuteAllSounds(); } else { muteAllSounds(); }; } public function getSoundDuration(_arg1:String):Number{ return (this._soundsDict[_arg1].sound.length); } public function setSoundVolume(_arg1:String, _arg2:Number):void{ var _local3:Object; var _local4:SoundTransform; _local3 = this._soundsDict[_arg1]; _local4 = _local3.channel.soundTransform; _local4.volume = _arg2; _local3.channel.soundTransform = _local4; } public function getSoundVolume(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.soundTransform.volume); } public function addLibrarySound(_arg1, _arg2:String):Boolean{ var _local3:int; var _local4:Object; var _local5:Sound; _local3 = 0; while (_local3 < this._sounds.length) { if (this._sounds[_local3].name == _arg2){ return (false); }; _local3++; }; _local4 = new Object(); _local5 = new (_arg1); _local4.name = _arg2; _local4.sound = _local5; _local4.channel = new SoundChannel(); _local4.position = 0; _local4.paused = true; _local4.volume = 1; _local4.startTime = 0; _local4.loops = 0; _local4.pausedByAll = false; this._soundsDict[_arg2] = _local4; this._sounds.push(_local4); return (true); } public function toString():String{ return (getQualifiedClassName(this)); } public function isSoundPaused(_arg1:String):Boolean{ return (this._soundsDict[_arg1].paused); } public function removeAllSounds():void{ var _local1:int; _local1 = 0; while (_local1 < this._sounds.length) { this._sounds[_local1] = null; _local1++; }; this._sounds = new Array(); this._soundsDict = new Dictionary(true); } public function getSoundPosition(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.position); } public function stopAllSounds(_arg1:Boolean=true):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.stopSound(_local3); }; } else { this.stopSound(_local3); }; _local2++; }; } public function removeSound(_arg1:String):void{ var _local2:int; _local2 = 0; while (_local2 < this._sounds.length) { if (this._sounds[_local2].name == _arg1){ this._sounds[_local2] = null; this._sounds.splice(_local2, 1); }; _local2++; }; delete this._soundsDict[_arg1]; } public function muteAllSounds():void{ var _local1:int; var _local2:String; _local1 = 0; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; this.setSoundVolume(_local2, 0); _local1++; }; } public function stopSound(_arg1:String):void{ var _local2:Object; _local2 = this._soundsDict[_arg1]; _local2.paused = true; _local2.channel.stop(); _local2.position = _local2.channel.position; } public function pauseAllSounds(_arg1:Boolean=true):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.pauseSound(_local3); }; } else { this.pauseSound(_local3); }; _local2++; }; } public function playAllSounds(_arg1:Boolean=false):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (this._soundsDict[_local3].pausedByAll){ this._soundsDict[_local3].pausedByAll = false; this.playSound(_local3); }; } else { this.playSound(_local3); }; _local2++; }; } public function addExternalSound(_arg1:String, _arg2:String, _arg3:Number=1000, _arg4:Boolean=false):Boolean{ var _local5:int; var _local6:Object; var _local7:Sound; _local5 = 0; while (_local5 < this._sounds.length) { if (this._sounds[_local5].name == _arg2){ return (false); }; _local5++; }; _local6 = new Object(); _local7 = new Sound(new URLRequest(_arg1), new SoundLoaderContext(_arg3, _arg4)); _local6.name = _arg2; _local6.sound = _local7; _local6.channel = new SoundChannel(); _local6.position = 0; _local6.paused = true; _local6.volume = 1; _local6.startTime = 0; _local6.loops = 0; _local6.pausedByAll = false; this._soundsDict[_arg2] = _local6; this._sounds.push(_local6); return (true); } public function unmuteAllSounds():void{ var _local1:int; var _local2:String; var _local3:Object; var _local4:SoundTransform; _local1 = 0; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; _local3 = this._soundsDict[_local2]; _local4 = _local3.channel.soundTransform; _local4.volume = 1; _local3.channel.soundTransform = _local4; _local1++; }; } public function isSoundPausedByAll(_arg1:String):Boolean{ return (this._soundsDict[_arg1].pausedByAll); } public function getSoundObject(_arg1:String):Sound{ return (this._soundsDict[_arg1].sound); } public function pauseSound(_arg1:String):void{ var _local2:Object; _local2 = this._soundsDict[_arg1]; _local2.paused = true; _local2.position = _local2.channel.position; _local2.channel.stop(); } public function playSound(_arg1:String, _arg2:Number=1, _arg3:Number=0, _arg4:int=0):void{ var _local5:Object; _local5 = this._soundsDict[_arg1]; if (Activo){ _local5.volume = _arg2; } else { _local5.volume = 0; }; _local5.startTime = _arg3; _local5.loops = _arg4; if (_local5.paused){ _local5.channel = _local5.sound.play(_local5.position, _local5.loops, new SoundTransform(_local5.volume)); } else { _local5.channel = _local5.sound.play(_arg3, _local5.loops, new SoundTransform(_local5.volume)); }; _local5.paused = false; } public static function getInstance():SoundManager{ if (SoundManager._instance == null){ SoundManager._allowInstance = true; SoundManager._instance = new (SoundManager); SoundManager._allowInstance = false; }; return (SoundManager._instance); } } }//package com.tanoku.sonido
Section 77
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.geom.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 78
//UILoader (fl.containers.UILoader) package fl.containers { import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.events.*; import flash.system.*; import flash.net.*; public class UILoader extends UIComponent { protected var loader:Loader; protected var _autoLoad:Boolean;// = true protected var _source:Object; protected var contentClip:Sprite; protected var _maintainAspectRatio:Boolean;// = true protected var contentInited:Boolean;// = false protected var _scaleContent:Boolean;// = true private static var defaultStyles:Object = {}; public function UILoader(){ _scaleContent = true; _autoLoad = true; contentInited = false; _maintainAspectRatio = true; super(); } public function get maintainAspectRatio():Boolean{ return (_maintainAspectRatio); } public function set maintainAspectRatio(_arg1:Boolean):void{ _maintainAspectRatio = _arg1; invalidate(InvalidationType.SIZE); } public function get source():Object{ return (_source); } protected function _unload(_arg1:Boolean=false):void{ var throwError = _arg1; if (loader != null){ clearLoadEvents(); contentClip.removeChild(loader); try { loader.close(); } catch(e:Error) { }; try { loader.unload(); } catch(e) { if (throwError){ throw (e); }; }; loader = null; return; }; contentInited = false; if (contentClip.numChildren){ contentClip.removeChildAt(0); }; } public function get bytesLoaded():uint{ return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesLoaded); } public function set source(_arg1:Object):void{ if (_arg1 == ""){ return; }; _source = _arg1; _unload(); if (((_autoLoad) && (!((_source == null))))){ load(); }; } public function set autoLoad(_arg1:Boolean):void{ _autoLoad = _arg1; if (((((((_autoLoad) && ((loader == null)))) && (!((_source == null))))) && (!((_source == ""))))){ load(); }; } public function get content():DisplayObject{ if (loader != null){ return (loader.content); }; if (contentClip.numChildren){ return (contentClip.getChildAt(0)); }; return (null); } public function get percentLoaded():Number{ return (((bytesTotal)<=0) ? 0 : ((bytesLoaded / bytesTotal) * 100)); } protected function handleError(_arg1:Event):void{ passEvent(_arg1); clearLoadEvents(); loader.contentLoaderInfo.removeEventListener(Event.INIT, handleInit); } public function load(_arg1:URLRequest=null, _arg2:LoaderContext=null):void{ var _local3:DisplayObject; _unload(); if ((((((_arg1 == null)) || ((_arg1.url == null)))) && ((((_source == null)) || ((_source == "")))))){ return; }; _local3 = getDisplayObjectInstance(source); if (_local3 != null){ contentClip.addChild(_local3); contentInited = true; invalidate(InvalidationType.SIZE); return; }; if (_arg1 == null){ _arg1 = new URLRequest(_source.toString()); }; if (_arg2 == null){ _arg2 = new LoaderContext(false, ApplicationDomain.currentDomain); }; initLoader(); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleError, false, 0, true); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleError, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.OPEN, passEvent, false, 0, true); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, passEvent, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleComplete, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit, false, 0, true); loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, passEvent, false, 0, true); loader.load(_arg1, _arg2); } public function unload():void{ _source = null; _unload(true); } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function loadBytes(_arg1:ByteArray, _arg2:LoaderContext=null):void{ var bytes = _arg1; var context = _arg2; _unload(); initLoader(); try { loader.loadBytes(bytes, context); } catch(error) { throw (error); }; } public function get autoLoad():Boolean{ return (_autoLoad); } protected function sizeContent(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local6 = _arg4; _local7 = _arg5; if (_maintainAspectRatio){ _local8 = (_arg4 / _arg5); _local9 = (_arg2 / _arg3); if (_local8 < _local9){ _local7 = (_local6 / _local9); } else { _local6 = (_local7 * _local9); }; }; _arg1.width = _local6; _arg1.height = _local7; _arg1.x = ((_arg4 / 2) - (_local6 / 2)); _arg1.y = ((_arg5 / 2) - (_local7 / 2)); } protected function initLoader():void{ loader = new Loader(); contentClip.addChild(loader); } override protected function draw():void{ if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } override protected function configUI():void{ super.configUI(); contentClip = new Sprite(); addChild(contentClip); } protected function handleInit(_arg1:Event):void{ loader.contentLoaderInfo.removeEventListener(Event.INIT, handleInit); contentInited = true; passEvent(_arg1); invalidate(InvalidationType.SIZE); } protected function handleComplete(_arg1:Event):void{ clearLoadEvents(); passEvent(_arg1); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (((!(_scaleContent)) && ((_width > 0)))){ return; }; super.setSize(_arg1, _arg2); } protected function drawLayout():void{ var _local1:Boolean; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:LoaderInfo; if (!contentInited){ return; }; _local1 = false; if (loader){ _local6 = loader.contentLoaderInfo; _local2 = _local6.width; _local3 = _local6.height; } else { _local2 = contentClip.width; _local3 = contentClip.height; }; _local4 = _width; _local5 = _height; if (!_scaleContent){ _width = contentClip.width; _height = contentClip.height; } else { sizeContent(contentClip, _local2, _local3, _width, _height); }; if (((!((_local4 == _width))) || (!((_local5 == _height))))){ dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, true)); }; } public function get bytesTotal():uint{ return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesTotal); } public function set scaleContent(_arg1:Boolean):void{ if (_scaleContent == _arg1){ return; }; _scaleContent = _arg1; invalidate(InvalidationType.SIZE); } protected function clearLoadEvents():void{ loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleError); loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, handleError); loader.contentLoaderInfo.removeEventListener(Event.OPEN, passEvent); loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, passEvent); loader.contentLoaderInfo.removeEventListener(HTTPStatusEvent.HTTP_STATUS, passEvent); loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleComplete); } public function get scaleContent():Boolean{ return (_scaleContent); } public function close():void{ try { loader.close(); } catch(error) { throw (error); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.containers
Section 79
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 80
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 81
//ImageCell (fl.controls.listClasses.ImageCell) package fl.controls.listClasses { import flash.display.*; import flash.events.*; import fl.containers.*; public class ImageCell extends CellRenderer implements ICellRenderer { protected var loader:UILoader; protected var textOverlay:Shape; private static var defaultStyles:Object = {imagePadding:1, textOverlayAlpha:0.7}; public function ImageCell(){ loader = new UILoader(); loader.addEventListener(IOErrorEvent.IO_ERROR, handleErrorEvent, false, 0, true); loader.autoLoad = true; loader.scaleContent = true; addChild(loader); } public function get source():Object{ return (loader.source); } public function set source(_arg1:Object):void{ loader.source = _arg1; } override public function set listData(_arg1:ListData):void{ var _local2:Object; _listData = _arg1; label = _listData.label; _local2 = (_listData as TileListData).source; if (source != _local2){ source = _local2; }; } override protected function draw():void{ super.draw(); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); textOverlay = new Shape(); _local1 = textOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, 100, 100); _local1.endFill(); } override public function get listData():ListData{ return (_listData); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = (getStyleValue("imagePadding") as Number); loader.move(_local1, _local1); _local2 = (width - (_local1 * 2)); _local3 = (height - (_local1 * 2)); if (((!((loader.width == _local2))) && (!((loader.height == _local3))))){ loader.setSize(_local2, _local3); }; loader.drawNow(); if ((((_label == "")) || ((_label == null)))){ if (contains(textField)){ removeChild(textField); }; if (contains(textOverlay)){ removeChild(textOverlay); }; } else { _local4 = (getStyleValue("textPadding") as Number); textField.width = Math.min((width - (_local4 * 2)), (textField.textWidth + 5)); textField.height = (textField.textHeight + 5); textField.x = Math.max(_local4, ((width / 2) - (textField.width / 2))); textField.y = ((height - textField.height) - _local4); textOverlay.x = _local1; textOverlay.height = (textField.height + (_local4 * 2)); textOverlay.y = ((height - textOverlay.height) - _local1); textOverlay.width = (width - (_local1 * 2)); textOverlay.alpha = (getStyleValue("textOverlayAlpha") as Number); addChild(textOverlay); addChild(textField); }; background.width = width; background.height = height; } protected function handleErrorEvent(_arg1:IOErrorEvent):void{ dispatchEvent(_arg1); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, CellRenderer.getStyleDefinition())); } } }//package fl.controls.listClasses
Section 82
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 83
//TileListData (fl.controls.listClasses.TileListData) package fl.controls.listClasses { import fl.core.*; public class TileListData extends ListData { protected var _source:Object; public function TileListData(_arg1:String, _arg2:Object, _arg3:Object, _arg4:UIComponent, _arg5:uint, _arg6:uint, _arg7:uint=0){ super(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7); _source = _arg3; } public function get source():Object{ return (_source); } } }//package fl.controls.listClasses
Section 84
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 85
//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 86
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 87
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 88
//NumericStepper (fl.controls.NumericStepper) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class NumericStepper extends UIComponent implements IFocusManagerComponent { protected var upArrow:BaseButton; protected var _stepSize:Number;// = 1 protected var downArrow:BaseButton; protected var _value:Number;// = 1 protected var _minimum:Number;// = 0 protected var _maximum:Number;// = 10 protected var _precision:Number; protected var inputField:TextInput; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TEXT_INPUT_STYLES:Object = {upSkin:"upSkin", disabledSkin:"disabledSkin", textPadding:"textPadding", textFormat:"textFormat", disabledTextFormat:"disabledTextFormat", embedFonts:"embedFonts"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"NumericStepperDownArrow_disabledSkin", downArrowDownSkin:"NumericStepperDownArrow_downSkin", downArrowOverSkin:"NumericStepperDownArrow_overSkin", downArrowUpSkin:"NumericStepperDownArrow_upSkin", upArrowDisabledSkin:"NumericStepperUpArrow_disabledSkin", upArrowDownSkin:"NumericStepperUpArrow_downSkin", upArrowOverSkin:"NumericStepperUpArrow_overSkin", upArrowUpSkin:"NumericStepperUpArrow_upSkin", upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRect:null, focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35, embedFonts:false}; public function NumericStepper(){ _maximum = 10; _minimum = 0; _value = 1; _stepSize = 1; super(); setStyles(); stepSize = _stepSize; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); }; } public function get minimum():Number{ return (_minimum); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function set minimum(_arg1:Number):void{ _minimum = _arg1; if (_value < _minimum){ setValue(_minimum, false); }; } public function get maximum():Number{ return (_maximum); } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == inputField)) || (super.isOurFocus(_arg1)))); } public function get nextValue():Number{ var _local1:Number; _local1 = (_value + _stepSize); return ((inRange(_local1)) ? _local1 : _value); } public function set maximum(_arg1:Number):void{ _maximum = _arg1; if (_value > _maximum){ setValue(_maximum, false); }; } protected function setValue(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; if (_arg1 == _value){ return; }; _local3 = _value; _value = getValidValue(_arg1); inputField.text = _value.toString(); if (_arg2){ dispatchEvent(new Event(Event.CHANGE, true)); }; } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:Number; if (!enabled){ return; }; _arg1.stopImmediatePropagation(); _local2 = Number(inputField.text); switch (_arg1.keyCode){ case Keyboard.END: setValue(maximum); break; case Keyboard.HOME: setValue(minimum); break; case Keyboard.UP: setValue(nextValue); break; case Keyboard.DOWN: setValue(previousValue); break; case Keyboard.ENTER: setValue(_local2); break; }; } override public function set enabled(_arg1:Boolean):void{ if (_arg1 == enabled){ return; }; super.enabled = _arg1; upArrow.enabled = (downArrow.enabled = (inputField.enabled = _arg1)); } protected function onTextChange(_arg1:Event):void{ _arg1.stopImmediatePropagation(); } public function get previousValue():Number{ var _local1:Number; _local1 = (_value - _stepSize); return ((inRange(_local1)) ? _local1 : _value); } protected function getValidValue(_arg1:Number):Number{ var _local2:Number; if (isNaN(_arg1)){ return (_value); }; _local2 = Number((_stepSize * Math.round((_arg1 / _stepSize))).toFixed(_precision)); if (_local2 > maximum){ return (maximum); }; if (_local2 < minimum){ return (minimum); }; return (_local2); } public function set value(_arg1:Number):void{ setValue(_arg1, false); } public function get stepSize():Number{ return (_stepSize); } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } protected function stepperPressHandler(_arg1:ComponentEvent):void{ setValue(Number(inputField.text), false); switch (_arg1.currentTarget){ case upArrow: setValue(nextValue); break; case downArrow: setValue(previousValue); }; inputField.setFocus(); inputField.textField.setSelection(0, 0); } override protected function focusOutHandler(_arg1:FocusEvent):void{ if (_arg1.eventPhase == 3){ setValue(Number(inputField.text)); }; super.focusOutHandler(_arg1); } protected function inRange(_arg1:Number):Boolean{ return ((((_arg1 >= _minimum)) && ((_arg1 <= _maximum)))); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; validate(); } override protected function configUI():void{ super.configUI(); upArrow = new BaseButton(); copyStylesToChild(upArrow, UP_ARROW_STYLES); upArrow.autoRepeat = true; upArrow.setSize(21, 12); upArrow.focusEnabled = false; addChild(upArrow); downArrow = new BaseButton(); copyStylesToChild(downArrow, DOWN_ARROW_STYLES); downArrow.autoRepeat = true; downArrow.setSize(21, 12); downArrow.focusEnabled = false; addChild(downArrow); inputField = new TextInput(); copyStylesToChild(inputField, TEXT_INPUT_STYLES); inputField.restrict = "0-9\\-\\.\\,"; inputField.text = _value.toString(); inputField.setSize(21, 24); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(FocusEvent.FOCUS_IN, passEvent); inputField.addEventListener(FocusEvent.FOCUS_OUT, passEvent); addChild(inputField); inputField.addEventListener(Event.CHANGE, onTextChange, false, 0, true); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, stepperPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, stepperPressHandler, false, 0, true); } public function get value():Number{ return (_value); } protected function inStep(_arg1:Number):Boolean{ return ((((_arg1 - _minimum) % _stepSize) == 0)); } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (width - upArrow.width); _local2 = (height / 2); inputField.setSize(_local1, height); upArrow.height = _local2; downArrow.height = Math.floor(_local2); downArrow.move(_local1, _local2); upArrow.move(_local1, 0); downArrow.drawNow(); upArrow.drawNow(); inputField.drawNow(); } override public function setFocus():void{ if (stage){ stage.focus = inputField.textField; }; } protected function getPrecision():Number{ var _local1:String; _local1 = _stepSize.toString(); if (_local1.indexOf(".") == -1){ return (0); }; return (_local1.split(".").pop().length); } public function get textField():TextInput{ return (inputField); } public function set stepSize(_arg1:Number):void{ _stepSize = _arg1; _precision = getPrecision(); setValue(_value); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); copyStylesToChild(inputField, TEXT_INPUT_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 89
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 90
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 91
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 92
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.data.*; import fl.managers.*; import fl.events.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 93
//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 94
//TileList (fl.controls.TileList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.utils.*; import flash.events.*; import fl.data.*; import fl.managers.*; import flash.ui.*; public class TileList extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _scrollPolicy:String;// = "auto" protected var _labelFunction:Function; protected var _scrollDirection:String;// = "horizontal" protected var _iconFunction:Function; private var collectionItemImport:TileListCollectionItem; protected var _rowHeight:Number;// = 50 protected var _cellRenderer:Object; protected var _columnWidth:Number;// = 50 protected var _iconField:String;// = "icon" protected var _sourceFunction:Function; protected var __rowCount:uint;// = 0 protected var __columnCount:uint;// = 0 protected var _sourceField:String;// = "source" protected var oldLength:uint;// = 0 private static var defaultStyles:Object = {cellRenderer:ImageCell, focusRectSkin:null, focusRectPadding:null, skin:"TileList_skin"}; public static var createAccessibilityImplementation:Function; public function TileList(){ _rowHeight = 50; _columnWidth = 50; _scrollDirection = ScrollBarDirection.HORIZONTAL; _scrollPolicy = ScrollPolicy.AUTO; oldLength = 0; _labelField = "label"; _iconField = "icon"; _sourceField = "source"; __rowCount = 0; __columnCount = 0; super(); } public function get iconField():String{ return (_iconField); } override protected function drawList():void{ var _local1:uint; var _local2:uint; var _local3:Object; var _local4:ICellRenderer; var _local5:uint; var _local6:uint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:Dictionary; var _local15:Dictionary; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:Boolean; var _local21:String; var _local22:Object; var _local23:Object; var _local24:Sprite; var _local25:String; var _local26:UIComponent; _local5 = rowCount; _local6 = columnCount; _local7 = columnWidth; _local8 = rowHeight; _local9 = 0; _local10 = 0; listHolder.x = (listHolder.y = contentPadding); contentScrollRect = listHolder.scrollRect; contentScrollRect.x = (Math.floor(_horizontalScrollPosition) % _local7); contentScrollRect.y = (Math.floor(_verticalScrollPosition) % _local8); listHolder.scrollRect = contentScrollRect; listHolder.cacheAsBitmap = useBitmapScrolling; _local13 = []; if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ _local16 = ((availableWidth / _local7) << 0); _local17 = Math.max(_local16, Math.ceil((length / _local5))); _local9 = ((_horizontalScrollPosition / _local7) << 0); _local6 = Math.max(_local16, Math.min((_local17 - _local9), (_local6 + 1))); _local12 = 0; while (_local12 < _local5) { _local11 = 0; while (_local11 < _local6) { _local2 = (((_local12 * _local17) + _local9) + _local11); if (_local2 >= length){ break; }; _local13.push(_local2); _local11++; }; _local12++; }; } else { _local5++; _local10 = ((_verticalScrollPosition / _local8) << 0); _local18 = Math.floor((_local10 * _local6)); _local19 = Math.min(length, (_local18 + (_local5 * _local6))); _local1 = _local18; while (_local1 < _local19) { _local13.push(_local1); _local1++; }; }; _local14 = (renderedItems = new Dictionary(true)); for each (_local2 in _local13) { _local14[_dataProvider.getItemAt(_local2)] = true; }; _local15 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local4 = activeCellRenderers.pop(); _local3 = _local4.data; if ((((_local14[_local3] == null)) || ((invalidItems[_local3] == true)))){ availableCellRenderers.push(_local4); } else { _local15[_local3] = _local4; invalidItems[_local3] = true; }; list.removeChild((_local4 as DisplayObject)); }; invalidItems = new Dictionary(true); _local1 = 0; for each (_local2 in _local13) { _local11 = (_local1 % _local6); _local12 = ((_local1 / _local6) << 0); _local20 = false; _local3 = _dataProvider.getItemAt(_local2); if (_local15[_local3] != null){ _local20 = true; _local4 = _local15[_local3]; delete _local15[_local3]; } else { if (availableCellRenderers.length > 0){ _local4 = (availableCellRenderers.pop() as ICellRenderer); } else { _local4 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local24 = (_local4 as Sprite); if (_local24 != null){ _local24.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local24.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local24.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local24.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local24.doubleClickEnabled = true; _local24.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local24["setStyle"] != null){ for (_local25 in rendererStyles) { var _local31 = _local24; _local31["setStyle"](_local25, rendererStyles[_local25]); }; }; }; }; }; list.addChild((_local4 as Sprite)); activeCellRenderers.push(_local4); _local4.y = (_local8 * _local12); _local4.x = (_local7 * _local11); _local4.setSize(columnWidth, rowHeight); _local21 = itemToLabel(_local3); _local22 = null; if (_iconFunction != null){ _local22 = _iconFunction(_local3); } else { if (_iconField != null){ _local22 = _local3[_iconField]; }; }; _local23 = null; if (_sourceFunction != null){ _local23 = _sourceFunction(_local3); } else { if (_sourceField != null){ _local23 = _local3[_sourceField]; }; }; if (!_local20){ _local4.data = _local3; }; _local4.listData = (new TileListData(_local21, _local22, _local23, this, _local2, (_local10 + _local12), (_local9 + _local11)) as ListData); _local4.selected = !((_selectedIndices.indexOf(_local2) == -1)); if ((_local4 is UIComponent)){ _local26 = (_local4 as UIComponent); _local26.drawNow(); }; _local1++; }; } public function get columnWidth():Number{ return (_columnWidth); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } public function set columnWidth(_arg1:Number):void{ if (_columnWidth == _arg1){ return; }; _columnWidth = _arg1; invalidate(InvalidationType.SIZE); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; _arg1.stopPropagation(); if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: case Keyboard.END: case Keyboard.HOME: if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); } else { moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); }; break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; } override public function get horizontalScrollPolicy():String{ return (null); } public function set scrollPolicy(_arg1:String):void{ if (((!(componentInspectorSetting)) && ((_scrollPolicy == _arg1)))){ return; }; _scrollPolicy = _arg1; if (direction == ScrollBarDirection.HORIZONTAL){ _horizontalScrollPolicy = _arg1; _verticalScrollPolicy = ScrollPolicy.OFF; } else { _verticalScrollPolicy = _arg1; _horizontalScrollPolicy = ScrollPolicy.OFF; }; invalidate(InvalidationType.SIZE); } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } override public function get verticalScrollPolicy():String{ return (null); } public function get innerWidth():Number{ var _local1:Number; drawNow(); _local1 = (getStyleValue("contentPadding") as Number); return (((width - (_local1 * 2)) - (_verticalScrollBar.visible) ? _verticalScrollBar.width : 0)); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } public function get sourceFunction():Function{ return (_sourceFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:uint; var _local5:int; var _local6:int; var _local7:*; _local4 = Math.ceil((Math.max((rowCount * columnCount), length) / rowCount)); switch (_arg1){ case Keyboard.LEFT: _local5 = Math.max(0, (selectedIndex - 1)); break; case Keyboard.RIGHT: _local5 = Math.min((length - 1), (selectedIndex + 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.PAGE_UP: _local6 = (selectedIndex - (selectedIndex % _local4)); _local5 = Math.max(0, Math.max(_local6, (selectedIndex - columnCount))); break; case Keyboard.PAGE_DOWN: _local7 = (((selectedIndex - (selectedIndex % _local4)) + _local4) - 1); _local5 = Math.min((length - 1), Math.min(_local7, (selectedIndex + _local4))); break; }; doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); } override protected function draw():void{ var _local1:Boolean; if (direction == ScrollBarDirection.VERTICAL){ if (__rowCount > 0){ rowCount = __rowCount; }; if (__columnCount > 0){ columnCount = __columnCount; }; } else { if (__columnCount > 0){ columnCount = __columnCount; }; if (__rowCount > 0){ rowCount = __rowCount; }; }; _local1 = !((oldLength == length)); oldLength = length; if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); _maxHorizontalScrollPosition = Math.max(0, (contentWidth - availableWidth)); }; updateChildren(); validate(); } override public function set horizontalScrollPolicy(_arg1:String):void{ } override protected function configUI():void{ super.configUI(); _horizontalScrollPolicy = scrollPolicy; _verticalScrollPolicy = ScrollPolicy.OFF; } override protected function drawLayout():void{ var _local1:uint; var _local2:uint; _horizontalScrollPolicy = ((_scrollDirection)==ScrollBarDirection.HORIZONTAL) ? _scrollPolicy : ScrollPolicy.OFF; _verticalScrollPolicy = ((_scrollDirection)!=ScrollBarDirection.HORIZONTAL) ? _scrollPolicy : ScrollPolicy.OFF; if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ _local1 = rowCount; contentHeight = (_local1 * _rowHeight); contentWidth = (_columnWidth * Math.ceil((length / _local1))); } else { _local2 = columnCount; contentWidth = (_local2 * _columnWidth); contentHeight = (_rowHeight * Math.ceil((length / _local2))); }; super.drawLayout(); } public function get sourceField():String{ return (_sourceField); } override public function get maxHorizontalScrollPosition():Number{ drawNow(); return (_maxHorizontalScrollPosition); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } override public function set verticalScrollPolicy(_arg1:String):void{ } protected function doKeySelection(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Array; var _local5:Boolean; var _local6:uint; var _local7:int; _local4 = selectedIndices; _local5 = false; if ((((_arg1 < 0)) || ((_arg1 > (length - 1))))){ } else { if (((((_arg2) && ((_local4.length > 0)))) && (!((_arg1 == _local4[0]))))){ _local6 = _local4[0]; _local4 = []; if (_arg1 < _local6){ _local7 = _local6; while (_local7 >= _arg1) { _local4.push(_local7); _local7--; }; } else { _local7 = _local6; while (_local7 <= _arg1) { _local4.push(_local7); _local7++; }; }; _local5 = true; } else { _local4 = [_arg1]; caretIndex = _arg1; _local5 = true; }; }; selectedIndices = _local4; if (_local5){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } public function set sourceFunction(_arg1:Function):void{ _sourceFunction = _arg1; invalidate(InvalidationType.DATA); } public function get scrollPolicy():String{ return (_scrollPolicy); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:uint; var _local5:uint; var _local6:uint; var _local7:int; var _local8:int; _local4 = Math.max(1, ((Math.max(contentHeight, availableHeight) / _rowHeight) << 0)); _local5 = Math.ceil((Math.max((columnCount * rowCount), length) / _local4)); _local6 = Math.ceil((length / _local5)); switch (_arg1){ case Keyboard.UP: _local7 = (selectedIndex - _local5); break; case Keyboard.DOWN: _local7 = (selectedIndex + _local5); break; case Keyboard.HOME: _local7 = 0; break; case Keyboard.END: _local7 = (length - 1); break; case Keyboard.PAGE_DOWN: _local8 = (selectedIndex + (_local5 * (_local6 - 1))); if (_local8 >= length){ _local8 = (_local8 - _local5); }; _local7 = Math.min((length - 1), _local8); break; case Keyboard.PAGE_UP: _local8 = (selectedIndex - (_local5 * (_local6 - 1))); if (_local8 < 0){ _local8 = (_local8 + _local5); }; _local7 = Math.max(0, _local8); break; }; doKeySelection(_local7, _arg2, _arg3); scrollToSelected(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; if (_arg1[_labelField] == null){ return (""); }; return (String(_arg1[_labelField])); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:*; if (_arg1 == 0){ return; }; if (componentInspectorSetting){ __rowCount = _arg1; return; }; __rowCount = 0; _local2 = Number(getStyleValue("contentPadding")); _local3 = (((((Math.ceil((length / _arg1)) > ((width / columnWidth) >> 0))) && ((_scrollPolicy == ScrollPolicy.AUTO)))) || ((_scrollPolicy == ScrollPolicy.ON))); height = (((rowHeight * _arg1) + (2 * _local2)) + ((((_scrollDirection == ScrollBarDirection.HORIZONTAL)) && (_local3))) ? ScrollBar.WIDTH : 0); } public function set columnCount(_arg1:uint):void{ var _local2:Number; var _local3:Boolean; if (_arg1 == 0){ return; }; if (componentInspectorSetting){ __columnCount = _arg1; return; }; __columnCount = 0; _local2 = Number(getStyleValue("contentPadding")); _local3 = (((((Math.ceil((length / _arg1)) > ((height / rowHeight) >> 0))) && ((_scrollPolicy == ScrollPolicy.AUTO)))) || ((_scrollPolicy == ScrollPolicy.ON))); width = (((columnWidth * _arg1) + (2 * _local2)) + ((((_scrollDirection == ScrollBarDirection.VERTICAL)) && (_local3))) ? 15 : 0); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } public function set direction(_arg1:String):void{ if (_scrollDirection == _arg1){ return; }; _scrollDirection = _arg1; invalidate(InvalidationType.SIZE); } public function get innerHeight():Number{ var _local1:Number; drawNow(); _local1 = (getStyleValue("contentPadding") as Number); return (((height - (_local1 * 2)) - (_horizontalScrollBar.visible) ? _horizontalScrollBar.height : 0)); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } public function set sourceField(_arg1:String):void{ _sourceField = _arg1; invalidate(InvalidationType.DATA); } override public function get rowCount():uint{ var _local1:Number; var _local2:uint; var _local3:uint; _local1 = Number(getStyleValue("contentPadding")); _local2 = Math.max(1, (((_width - (2 * _local1)) / _columnWidth) << 0)); _local3 = Math.max(1, (((_height - (2 * _local1)) / _rowHeight) << 0)); if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ if ((((_scrollPolicy == ScrollPolicy.ON)) || ((((_scrollPolicy == ScrollPolicy.AUTO)) && ((length > (_local2 * _local3))))))){ _local3 = Math.max(1, ((((_height - (2 * _local1)) - 15) / _rowHeight) << 0)); }; } else { _local3 = Math.max(1, Math.ceil(((_height - (2 * _local1)) / _rowHeight))); }; return (_local3); } public function set rowHeight(_arg1:Number):void{ if (_rowHeight == _arg1){ return; }; _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public function get columnCount():uint{ var _local1:Number; var _local2:uint; var _local3:uint; _local1 = Number(getStyleValue("contentPadding")); _local2 = Math.max(1, (((_width - (2 * _local1)) / _columnWidth) << 0)); _local3 = Math.max(1, (((_height - (2 * _local1)) / _rowHeight) << 0)); if (_scrollDirection != ScrollBarDirection.HORIZONTAL){ if ((((_scrollPolicy == ScrollPolicy.ON)) || ((((_scrollPolicy == ScrollPolicy.AUTO)) && ((length > (_local2 * _local3))))))){ _local2 = Math.max(1, ((((_width - (2 * _local1)) - 15) / _columnWidth) << 0)); }; } else { _local2 = Math.max(1, Math.ceil(((_width - (2 * _local1)) / _columnWidth))); }; return (_local2); } public function get iconFunction():Function{ return (_iconFunction); } override public function set dataProvider(_arg1:DataProvider):void{ super.dataProvider = _arg1; } public function get direction():String{ return (_scrollDirection); } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:Number; var _local4:Number; drawNow(); _local2 = Math.max(1, ((contentWidth / _columnWidth) << 0)); if (_scrollDirection == ScrollBarDirection.VERTICAL){ if (rowHeight > availableHeight){ return; }; _local3 = (((_arg1 / _local2) >> 0) * rowHeight); if (_local3 < verticalScrollPosition){ verticalScrollPosition = _local3; } else { if (_local3 > ((verticalScrollPosition + availableHeight) - rowHeight)){ verticalScrollPosition = ((_local3 + rowHeight) - availableHeight); }; }; } else { if (columnWidth > availableWidth){ return; }; _local4 = ((_arg1 % _local2) * columnWidth); if (_local4 < horizontalScrollPosition){ horizontalScrollPosition = _local4; } else { if (_local4 > ((horizontalScrollPosition + availableWidth) - columnWidth)){ horizontalScrollPosition = ((_local4 + columnWidth) - availableWidth); }; }; }; } override protected function initializeAccessibility():void{ if (TileList.createAccessibilityImplementation != null){ TileList.createAccessibilityImplementation(this); }; } public function get rowHeight():Number{ return (_rowHeight); } override public function get dataProvider():DataProvider{ return (super.dataProvider); } override public function set maxHorizontalScrollPosition(_arg1:Number):void{ } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition(), ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 95
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 96
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 97
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.utils.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 98
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); //unresolved jump }; if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; throw (new TypeError((("Error: Type Coercion failed: cannot convert " + _arg1) + " to Array or DataProvider."))); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 99
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 100
//TileListCollectionItem (fl.data.TileListCollectionItem) package fl.data { public dynamic class TileListCollectionItem { public var label:String; public var source:String; public function toString():String{ return ((((("[TileListCollectionItem: " + label) + ",") + source) + "]")); } } }//package fl.data
Section 101
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 102
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 103
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 104
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 105
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 106
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.utils.*; import flash.events.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 107
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 108
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 109
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 110
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 111
//Input (General.Input) package General { import flash.display.*; import flash.events.*; public class Input { public static var mouseOffsetX:Number = 0; private static var keyArr:Array; public static var mouseDragX:Number = 0; public static var mouseDragY:Number = 0; public static var mouseOffsetY:Number = 0; public static var ascii:Array; public static var mouseX:Number = 0; public static var mouseY:Number = 0; public static var mouseOver:Boolean = false; private static var bufferSize:int; public static var mouse:Sprite = new Sprite(); public static var mouseDown:Boolean = false; public static var mouseReleased:Boolean = false; public static var lastKey:int = 0; public static var m_stageMc:Sprite; private static var keyState:Array; public static var timeSinceLastKey = 0; public static var mousePressed:Boolean = false; private static var keyBuffer:Array; public function Input(_arg1:Sprite){ var _local2:int; var _local3:int; super(); m_stageMc = _arg1; ascii = new Array(222); fillAscii(); keyState = new Array(222); keyArr = new Array(); _local2 = 0; while (_local2 < 222) { keyState[_local2] = new int(0); if (ascii[_local2] != undefined){ keyArr.push(_local2); }; _local2++; }; bufferSize = 5; keyBuffer = new Array(bufferSize); _local3 = 0; while (_local3 < bufferSize) { keyBuffer[_local3] = new Array(0, 0); _local3++; }; _arg1.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPress, false, 0, true); _arg1.stage.addEventListener(KeyboardEvent.KEY_UP, keyRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress, false, 0, true); _arg1.stage.addEventListener(MouseEvent.CLICK, mouseRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove, false, 0, true); _arg1.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave, false, 0, true); mouse.graphics.lineStyle(0.1, 0, 100); mouse.graphics.moveTo(0, 0); mouse.graphics.lineTo(0, 0.1); } public function mouseRelease(_arg1:MouseEvent){ mouseDown = false; mouseReleased = true; } public function keyPress(_arg1:KeyboardEvent){ keyState[_arg1.keyCode] = Math.max(keyState[_arg1.keyCode], 1); lastKey = _arg1.keyCode; } private function fillAscii(){ ascii[65] = "A"; ascii[66] = "B"; ascii[67] = "C"; ascii[68] = "D"; ascii[69] = "E"; ascii[70] = "F"; ascii[71] = "G"; ascii[72] = "H"; ascii[73] = "I"; ascii[74] = "J"; ascii[75] = "K"; ascii[76] = "L"; ascii[77] = "M"; ascii[78] = "N"; ascii[79] = "O"; ascii[80] = "P"; ascii[81] = "Q"; ascii[82] = "R"; ascii[83] = "S"; ascii[84] = "T"; ascii[85] = "U"; ascii[86] = "V"; ascii[87] = "W"; ascii[88] = "X"; ascii[89] = "Y"; ascii[90] = "Z"; ascii[48] = "0"; ascii[49] = "1"; ascii[50] = "2"; ascii[51] = "3"; ascii[52] = "4"; ascii[53] = "5"; ascii[54] = "6"; ascii[55] = "7"; ascii[56] = "8"; ascii[57] = "9"; ascii[32] = "Spacebar"; ascii[17] = "Ctrl"; ascii[16] = "Shift"; ascii[192] = "~"; ascii[38] = "up"; ascii[40] = "down"; ascii[37] = "left"; ascii[39] = "right"; ascii[96] = "Numpad 0"; ascii[97] = "Numpad 1"; ascii[98] = "Numpad 2"; ascii[99] = "Numpad 3"; ascii[100] = "Numpad 4"; ascii[101] = "Numpad 5"; ascii[102] = "Numpad 6"; ascii[103] = "Numpad 7"; ascii[104] = "Numpad 8"; ascii[105] = "Numpad 9"; ascii[111] = "Numpad /"; ascii[106] = "Numpad *"; ascii[109] = "Numpad -"; ascii[107] = "Numpad +"; ascii[110] = "Numpad ."; ascii[45] = "Insert"; ascii[46] = "Delete"; ascii[33] = "Page Up"; ascii[34] = "Page Down"; ascii[35] = "End"; ascii[36] = "Home"; ascii[112] = "F1"; ascii[113] = "F2"; ascii[114] = "F3"; ascii[115] = "F4"; ascii[116] = "F5"; ascii[117] = "F6"; ascii[118] = "F7"; ascii[119] = "F8"; ascii[188] = ","; ascii[190] = "."; ascii[186] = ";"; ascii[222] = "'"; ascii[219] = "["; ascii[221] = "]"; ascii[189] = "-"; ascii[187] = "+"; ascii[220] = "\\"; ascii[191] = "/"; ascii[9] = "TAB"; ascii[8] = "Backspace"; } public function mouseMove(_arg1:MouseEvent){ if (mouseDown != _arg1.buttonDown){ mouseDown = _arg1.buttonDown; mouseReleased = !(_arg1.buttonDown); mousePressed = _arg1.buttonDown; mouseDragX = 0; mouseDragY = 0; }; mouseX = (_arg1.stageX - m_stageMc.x); mouseY = (_arg1.stageY - m_stageMc.y); mouseOffsetX = (mouseX - mouse.x); mouseOffsetY = (mouseY - mouse.y); if (mouseDown){ mouseDragX = (mouseDragX + mouseOffsetX); mouseDragY = (mouseDragY + mouseOffsetY); }; mouse.x = mouseX; mouse.y = mouseY; } public function keyRelease(_arg1:KeyboardEvent){ var _local2:int; keyState[_arg1.keyCode] = -1; _local2 = (bufferSize - 1); while (_local2 > 0) { keyBuffer[_local2] = keyBuffer[(_local2 - 1)]; _local2--; }; keyBuffer[0] = [_arg1.keyCode, 0]; } public function mouseLeave(_arg1:Event){ mouseReleased = mouseDown; mouseDown = false; } public function mousePress(_arg1:MouseEvent){ mousePressed = true; mouseDown = true; mouseDragX = 0; mouseDragY = 0; } public static function getKeyHold(_arg1:int):int{ return (Math.max(0, keyState[_arg1])); } public static function update(){ var _local1:int; var _local2:int; _local1 = 0; while (_local1 < keyArr.length) { if (keyState[keyArr[_local1]] != 0){ var _local3 = keyState; var _local4 = keyArr[_local1]; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; }; _local1++; }; _local2 = 0; while (_local2 < bufferSize) { _local3 = keyBuffer[_local2]; _local4 = 1; _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; _local2++; }; mouseReleased = false; mousePressed = false; mouseOver = false; } public static function isKeyPressed(_arg1:int):Boolean{ timeSinceLastKey = 0; return ((keyState[_arg1] == 1)); } public static function isKeyDown(_arg1:int):Boolean{ return ((keyState[_arg1] > 0)); } public static function getKeyString(_arg1:uint):String{ return (ascii[_arg1]); } public static function isKeyReleased(_arg1:int):Boolean{ return ((keyState[_arg1] == -1)); } public static function isKeyInBuffer(_arg1:int, _arg2:int, _arg3:int){ return ((((keyBuffer[_arg2][0] == _arg1)) && ((keyBuffer[_arg2][1] <= _arg3)))); } } }//package General
Section 112
//TweenEvent (gs.events.TweenEvent) package gs.events { import flash.events.*; public class TweenEvent extends Event { public var info:Object; public static const UPDATE:String = "update"; public static const START:String = "start"; public static const version:Number = 0.9; public static const COMPLETE:String = "complete"; public function TweenEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.info = _arg2; } override public function clone():Event{ return (new TweenEvent(this.type, this.info, this.bubbles, this.cancelable)); } } }//package gs.events
Section 113
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _tweenVisible:Boolean; protected var _tween:TweenLite; protected var _visible:Boolean; protected var _target:Object; public static const VERSION:Number = 1; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; this.onComplete = onCompleteTween; } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (((!((_target.visible == true))) && (_tweenVisible))){ _target.visible = true; }; } public function onCompleteTween():void{ if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(!((_arg2 == 0))); _tweenVisible = true; addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _tweenVisible = !(Boolean(("visible" in _arg1))); } } }//package gs.plugins
Section 114
//BevelFilterPlugin (gs.plugins.BevelFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BevelFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BevelFilterPlugin(){ this.propName = "bevelFilter"; this.overwriteProps = ["bevelFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BevelFilter; initFilter(_arg2, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 115
//BezierPlugin (gs.plugins.BezierPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class BezierPlugin extends TweenPlugin { protected var _future:Object; protected var _orient:Boolean; protected var _orientData:Array; protected var _beziers:Object; protected var _target:Object; protected static const _RAD2DEG:Number = (180 / Math.PI); public static const VERSION:Number = 1.01; public static const API:Number = 1; public function BezierPlugin(){ _future = {}; super(); this.propName = "bezier"; this.overwriteProps = []; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:String; var _local4:Object; var _local5:Number; var _local6:uint; var _local7:Number; var _local8:int; var _local9:Object; var _local10:Boolean; var _local11:Number; var _local12:Number; var _local13:Array; var _local14:Number; if (_arg1 == 1){ for (_local3 in _beziers) { _local2 = (_beziers[_local3].length - 1); _target[_local3] = _beziers[_local3][_local2][2]; }; } else { for (_local3 in _beziers) { _local6 = _beziers[_local3].length; if (_arg1 < 0){ _local2 = 0; } else { if (_arg1 >= 1){ _local2 = (_local6 - 1); } else { _local2 = int((_local6 * _arg1)); }; }; _local5 = ((_arg1 - (_local2 * (1 / _local6))) * _local6); _local4 = _beziers[_local3][_local2]; if (this.round){ _local7 = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); _local8 = ((_local7)<0) ? -1 : 1; _target[_local3] = ((((_local7 % 1) * _local8))>0.5) ? (int(_local7) + _local8) : int(_local7); } else { _target[_local3] = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); }; }; }; if (_orient){ _local9 = _target; _local10 = this.round; _target = _future; this.round = false; _orient = false; this.changeFactor = (_arg1 + 0.01); _target = _local9; this.round = _local10; _orient = true; _local2 = 0; while (_local2 < _orientData.length) { _local13 = _orientData[_local2]; _local14 = ((_local13[3]) || (0)); _local11 = (_future[_local13[0]] - _target[_local13[0]]); _local12 = (_future[_local13[1]] - _target[_local13[1]]); _target[_local13[2]] = ((Math.atan2(_local12, _local11) * _RAD2DEG) + _local14); _local2++; }; }; } protected function init(_arg1:TweenLite, _arg2:Array, _arg3:Boolean):void{ var _local4:Object; var _local5:int; var _local6:String; _target = _arg1.target; if (_arg1.exposedVars.orientToBezier == true){ _orientData = [["x", "y", "rotation", 0]]; _orient = true; } else { if ((_arg1.exposedVars.orientToBezier is Array)){ _orientData = _arg1.exposedVars.orientToBezier; _orient = true; }; }; _local4 = {}; _local5 = 0; while (_local5 < _arg2.length) { for (_local6 in _arg2[_local5]) { if (_local4[_local6] == undefined){ _local4[_local6] = [_arg1.target[_local6]]; }; if (typeof(_arg2[_local5][_local6]) == "number"){ _local4[_local6].push(_arg2[_local5][_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg2[_local5][_local6]))); }; }; _local5++; }; for (_local6 in _local4) { this.overwriteProps[this.overwriteProps.length] = _local6; if (_arg1.exposedVars[_local6] != undefined){ if (typeof(_arg1.exposedVars[_local6]) == "number"){ _local4[_local6].push(_arg1.exposedVars[_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg1.exposedVars[_local6]))); }; delete _arg1.exposedVars[_local6]; _local5 = (_arg1.tweens.length - 1); while (_local5 > -1) { if (_arg1.tweens[_local5].name == _local6){ _arg1.tweens.splice(_local5, 1); }; _local5--; }; }; }; _beziers = parseBeziers(_local4, _arg3); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), false); return (true); } override public function killProps(_arg1:Object):void{ var _local2:String; for (_local2 in _beziers) { if ((_local2 in _arg1)){ delete _beziers[_local2]; }; }; super.killProps(_arg1); } public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{ var _local3:int; var _local4:Array; var _local5:Object; var _local6:String; var _local7:Object; _local7 = {}; if (_arg2){ for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 2){ _local5[_local5.length] = [_local4[0], (_local4[1] - ((_local4[2] - _local4[0]) / 4)), _local4[1]]; _local3 = 1; while (_local3 < (_local4.length - 1)) { _local5[_local5.length] = [_local4[_local3], (_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)][1])), _local4[(_local3 + 1)]]; _local3++; }; } else { _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; } else { for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 3){ _local5[_local5.length] = [_local4[0], _local4[1], ((_local4[1] + _local4[2]) / 2)]; _local3 = 2; while (_local3 < (_local4.length - 2)) { _local5[_local5.length] = [_local5[(_local3 - 2)][2], _local4[_local3], ((_local4[_local3] + _local4[(_local3 + 1)]) / 2)]; _local3++; }; _local5[_local5.length] = [_local5[(_local5.length - 1)][2], _local4[(_local4.length - 2)], _local4[(_local4.length - 1)]]; } else { if (_local4.length == 3){ _local5[_local5.length] = [_local4[0], _local4[1], _local4[2]]; } else { if (_local4.length == 2){ _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; }; }; }; return (_local7); } } }//package gs.plugins
Section 116
//BezierThroughPlugin (gs.plugins.BezierThroughPlugin) package gs.plugins { import gs.*; public class BezierThroughPlugin extends BezierPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BezierThroughPlugin(){ this.propName = "bezierThrough"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), true); return (true); } } }//package gs.plugins
Section 117
//BlurFilterPlugin (gs.plugins.BlurFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BlurFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BlurFilterPlugin(){ this.propName = "blurFilter"; this.overwriteProps = ["blurFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BlurFilter; initFilter(_arg2, new BlurFilter(0, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 118
//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class ColorMatrixFilterPlugin extends FilterPlugin { protected var _matrix:Array; protected var _matrixTween:EndArrayPlugin; public static const API:Number = 1; public static const VERSION:Number = 1.1; protected static var _lumG:Number = 0.71516; protected static var _lumR:Number = 0.212671; protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; protected static var _lumB:Number = 0.072169; public function ColorMatrixFilterPlugin(){ this.propName = "colorMatrixFilter"; this.overwriteProps = ["colorMatrixFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:Object; var _local5:Array; _target = _arg1; _type = ColorMatrixFilter; _local4 = _arg2; initFilter({remove:_arg2.remove, index:_arg2.index, addFilter:_arg2.addFilter}, new ColorMatrixFilter(_idMatrix.slice())); _matrix = ColorMatrixFilter(_filter).matrix; _local5 = []; if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){ _local5 = _local4.matrix; } else { if (_local4.relative == true){ _local5 = _matrix.slice(); } else { _local5 = _idMatrix.slice(); }; _local5 = setBrightness(_local5, _local4.brightness); _local5 = setContrast(_local5, _local4.contrast); _local5 = setHue(_local5, _local4.hue); _local5 = setSaturation(_local5, _local4.saturation); _local5 = setThreshold(_local5, _local4.threshold); if (!isNaN(_local4.colorize)){ _local5 = colorize(_local5, _local4.colorize, _local4.amount); }; }; _matrixTween = new EndArrayPlugin(); _matrixTween.init(_matrix, _local5); return (true); } override public function set changeFactor(_arg1:Number):void{ _matrixTween.changeFactor = _arg1; ColorMatrixFilter(_filter).matrix = _matrix; super.changeFactor = _arg1; } public static function setSaturation(_arg1:Array, _arg2:Number):Array{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; if (isNaN(_arg2)){ return (_arg1); }; _local3 = (1 - _arg2); _local4 = (_local3 * _lumR); _local5 = (_local3 * _lumG); _local6 = (_local3 * _lumB); _local7 = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local7, _arg1)); } public static function setHue(_arg1:Array, _arg2:Number):Array{ var _local3:Number; var _local4:Number; var _local5:Array; if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 * (Math.PI / 180)); _local3 = Math.cos(_arg2); _local4 = Math.sin(_arg2); _local5 = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; return (applyMatrix(_local5, _arg1)); } public static function setThreshold(_arg1:Array, _arg2:Number):Array{ var _local3:Array; if (isNaN(_arg2)){ return (_arg1); }; _local3 = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function applyMatrix(_arg1:Array, _arg2:Array):Array{ var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:int; if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (_arg2); }; _local3 = []; _local4 = 0; _local5 = 0; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 5) { if (_local7 == 4){ _local5 = _arg1[(_local4 + 4)]; } else { _local5 = 0; }; _local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5); _local7++; }; _local4 = (_local4 + 5); _local6++; }; return (_local3); } public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; if (isNaN(_arg2)){ return (_arg1); }; if (isNaN(_arg3)){ _arg3 = 1; }; _local4 = (((_arg2 >> 16) & 0xFF) / 0xFF); _local5 = (((_arg2 >> 8) & 0xFF) / 0xFF); _local6 = ((_arg2 & 0xFF) / 0xFF); _local7 = (1 - _arg3); _local8 = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local8, _arg1)); } public static function setBrightness(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = ((_arg2 * 100) - 100); return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1)); } public static function setContrast(_arg1:Array, _arg2:Number):Array{ var _local3:Array; if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 + 0.01); _local3 = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } } }//package gs.plugins
Section 119
//DropShadowFilterPlugin (gs.plugins.DropShadowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class DropShadowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function DropShadowFilterPlugin(){ this.propName = "dropShadowFilter"; this.overwriteProps = ["dropShadowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = DropShadowFilter; initFilter(_arg2, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout, _arg2.hideObject)); return (true); } } }//package gs.plugins
Section 120
//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import flash.display.*; import gs.*; import gs.utils.tween.*; public class EndArrayPlugin extends TweenPlugin { protected var _info:Array; protected var _a:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:ArrayTweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function init(_arg1:Array, _arg2:Array):void{ var _local3:int; _a = _arg1; _local3 = (_arg2.length - 1); while (_local3 > -1) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } } }//package gs.plugins
Section 121
//FilterPlugin (gs.plugins.FilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; import gs.utils.tween.*; public class FilterPlugin extends TweenPlugin { protected var _index:int; protected var _filter:BitmapFilter; protected var _type:Class; protected var _remove:Boolean; protected var _target:Object; public static const VERSION:Number = 1.03; public static const API:Number = 1; override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Array; _local4 = _target.filters; _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; if (!(_local4[_index] is _type)){ _index = (_local4.length - 1); _local2 = (_local4.length - 1); while (_local2 > -1) { if ((_local4[_local2] is _type)){ _index = _local2; break; }; _local2--; }; }; _local4[_index] = _filter; _target.filters = _local4; } public function onCompleteTween():void{ var _local1:int; var _local2:Array; if (_remove){ _local2 = _target.filters; if (!(_local2[_index] is _type)){ _local1 = (_local2.length - 1); while (_local1 > -1) { if ((_local2[_local1] is _type)){ _local2.splice(_local1, 1); break; }; _local1--; }; } else { _local2.splice(_index, 1); }; _target.filters = _local2; }; } protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{ var _local3:Array; var _local4:String; var _local5:int; var _local6:HexColorsPlugin; var _local7:Object; _local3 = _target.filters; _index = -1; if (_arg1.index != null){ _index = _arg1.index; } else { _local5 = (_local3.length - 1); while (_local5 > -1) { if ((_local3[_local5] is _type)){ _index = _local5; break; }; _local5--; }; }; if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){ _index = ((_arg1.index)!=null) ? _arg1.index : _local3.length; _local3[_index] = _arg2; _target.filters = _local3; }; _filter = _local3[_index]; _remove = Boolean((_arg1.remove == true)); if (_remove){ this.onComplete = onCompleteTween; }; _local7 = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1; for (_local4 in _local7) { if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){ } else { if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){ _local6 = new HexColorsPlugin(); _local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]); _tweens[_tweens.length] = new TweenInfo(_local6, "changeFactor", 0, 1, _local4, false); } else { if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){ _filter[_local4] = _local7[_local4]; } else { addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4); }; }; }; }; } } }//package gs.plugins
Section 122
//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { public var frame:int; protected var _target:MovieClip; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame"]; this.round = true; } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } } }//package gs.plugins
Section 123
//GlowFilterPlugin (gs.plugins.GlowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class GlowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function GlowFilterPlugin(){ this.propName = "glowFilter"; this.overwriteProps = ["glowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = GlowFilter; initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout)); return (true); } } }//package gs.plugins
Section 124
//HexColorsPlugin (gs.plugins.HexColorsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class HexColorsPlugin extends TweenPlugin { protected var _colors:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function HexColorsPlugin(){ this.propName = "hexColors"; this.overwriteProps = []; _colors = []; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:Array; _local2 = (_colors.length - 1); while (_local2 > -1) { _local3 = _colors[_local2]; _local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7]))); _local2--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; for (_local4 in _arg2) { initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4])); }; return (true); } override public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (_colors.length - 1); while (_local2 > -1) { if (_arg1[_colors[_local2][1]] != undefined){ _colors.splice(_local2, 1); }; _local2--; }; super.killProps(_arg1); } public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg3 != _arg4){ _local5 = (_arg3 >> 16); _local6 = ((_arg3 >> 8) & 0xFF); _local7 = (_arg3 & 0xFF); _colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)]; this.overwriteProps[this.overwriteProps.length] = _arg2; }; } } }//package gs.plugins
Section 125
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin) package gs.plugins { import flash.display.*; import gs.*; public class RemoveTintPlugin extends TintPlugin { public static const VERSION:Number = 1.01; public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package gs.plugins
Section 126
//RoundPropsPlugin (gs.plugins.RoundPropsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class RoundPropsPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function RoundPropsPlugin(){ this.propName = "roundProps"; this.overwriteProps = []; this.round = true; } public function add(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ addTween(_arg1, _arg2, _arg3, (_arg3 + _arg4), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 127
//ShortRotationPlugin (gs.plugins.ShortRotationPlugin) package gs.plugins { import flash.display.*; import gs.*; public class ShortRotationPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function ShortRotationPlugin(){ this.propName = "shortRotation"; this.overwriteProps = []; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; if (typeof(_arg2) == "number"){ trace("WARNING: You appear to be using the old shortRotation syntax. Instead of passing a number, please pass an object with properties that correspond to the rotations values For example, TweenMax.to(mc, 2, {shortRotation:{rotationX:-170, rotationY:25}})"); return (false); }; for (_local4 in _arg2) { initRotation(_arg1, _local4, _arg1[_local4], _arg2[_local4]); }; return (true); } public function initRotation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ var _local5:Number; _local5 = ((_arg4 - _arg3) % 360); if (((_arg4 - _arg3) % 360) != (_local5 % 180)){ _local5 = ((_local5)<0) ? (_local5 + 360) : (_local5 - 360); }; addTween(_arg1, _arg2, _arg3, (_arg3 + _local5), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 128
//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.display.*; import flash.geom.*; import gs.*; import gs.utils.tween.*; public class TintPlugin extends TweenPlugin { protected var _ct:ColorTransform; protected var _ignoreAlpha:Boolean; protected var _target:DisplayObject; public static const VERSION:Number = 1.1; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _target.transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _target.transform.colorTransform = _ct; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local3:int; var _local4:String; _target = _arg1; _ct = _target.transform.colorTransform; _local3 = (_props.length - 1); while (_local3 > -1) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:ColorTransform; if (!(_arg1 is DisplayObject)){ return (false); }; _local4 = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } } }//package gs.plugins
Section 129
//TweenPlugin (gs.plugins.TweenPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class TweenPlugin { public var overwriteProps:Array; protected var _tweens:Array; public var round:Boolean; public var onComplete:Function; public var propName:String; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.03; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; _changeFactor = 0; super(); } protected function updateTweens(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (this.overwriteProps.length - 1); while (_local2 > -1) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; _local2--; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2].name in _arg1)){ _tweens.splice(_local2, 1); }; _local2--; }; } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public function get changeFactor():Number{ return (_changeFactor); } public static function activate(_arg1:Array):Boolean{ var _local2:int; var _local3:Object; _local2 = (_arg1.length - 1); while (_local2 > -1) { _local3 = new (_arg1[_local2]); TweenLite.plugins[_local3.propName] = _arg1[_local2]; _local2--; }; return (true); } } }//package gs.plugins
Section 130
//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _tween:TweenLite; protected var _visible:Boolean; protected var _target:Object; public static const VERSION:Number = 1; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } override public function set changeFactor(_arg1:Number):void{ if (_target.visible != true){ _target.visible = true; }; } public function onCompleteTween():void{ if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(_arg2); return (true); } } }//package gs.plugins
Section 131
//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import flash.media.*; import gs.*; public class VolumePlugin extends TweenPlugin { protected var _st:SoundTransform; protected var _target:Object; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } } }//package gs.plugins
Section 132
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo) package gs.utils.tween { public class ArrayTweenInfo { public var change:Number; public var index:uint; public var start:Number; public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } } }//package gs.utils.tween
Section 133
//TweenInfo (gs.utils.tween.TweenInfo) package gs.utils.tween { public class TweenInfo { public var start:Number; public var name:String; public var change:Number; public var target:Object; public var property:String; public var isPlugin:Boolean; public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; } } }//package gs.utils.tween
Section 134
//OverwriteManager (gs.OverwriteManager) package gs { import flash.utils.*; import gs.utils.tween.*; import flash.errors.*; public class OverwriteManager { public static const ALL:int = 1; public static const NONE:int = 0; public static const AUTO:int = 2; public static const CONCURRENT:int = 3; public static const version:Number = 3.12; public static var mode:int; public static var enabled:Boolean; public static function killVars(_arg1:Object, _arg2:Object, _arg3:Array):void{ var _local4:int; var _local5:String; var _local6:TweenInfo; _local4 = (_arg3.length - 1); while (_local4 > -1) { _local6 = _arg3[_local4]; if ((_local6.name in _arg1)){ _arg3.splice(_local4, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_arg1); if (_local6.target.overwriteProps.length == 0){ _arg3.splice(_local4, 1); }; }; }; _local4--; }; for (_local5 in _arg1) { delete _arg2[_local5]; }; } public static function manageOverwrites(_arg1:TweenLite, _arg2:Array):void{ var _local3:Object; var _local4:int; var _local5:Number; var _local6:Array; var _local7:int; var _local8:TweenLite; var _local9:int; var _local10:Array; var _local11:Object; var _local12:int; var _local13:TweenInfo; var _local14:Array; _local3 = _arg1.vars; _local4 = ((_local3.overwrite)==undefined) ? mode : int(_local3.overwrite); if ((((_local4 < 2)) || ((_arg2 == null)))){ return; }; _local5 = _arg1.startTime; _local6 = []; _local9 = -1; _local7 = (_arg2.length - 1); while (_local7 > -1) { _local8 = _arg2[_local7]; if (_local8 == _arg1){ _local9 = _local7; } else { if ((((((_local7 < _local9)) && ((_local8.startTime <= _local5)))) && (((_local8.startTime + ((_local8.duration * 1000) / _local8.combinedTimeScale)) > _local5)))){ _local6[_local6.length] = _local8; }; }; _local7--; }; if ((((_local6.length == 0)) || ((_arg1.tweens.length == 0)))){ return; }; if (_local4 == AUTO){ _local10 = _arg1.tweens; _local11 = {}; _local7 = (_local10.length - 1); while (_local7 > -1) { _local13 = _local10[_local7]; if (_local13.isPlugin){ if (_local13.name == "_MULTIPLE_"){ _local14 = _local13.target.overwriteProps; _local12 = (_local14.length - 1); while (_local12 > -1) { _local11[_local14[_local12]] = true; _local12--; }; } else { _local11[_local13.name] = true; }; _local11[_local13.target.propName] = true; } else { _local11[_local13.name] = true; }; _local7--; }; _local7 = (_local6.length - 1); while (_local7 > -1) { killVars(_local11, _local6[_local7].exposedVars, _local6[_local7].tweens); _local7--; }; } else { _local7 = (_local6.length - 1); while (_local7 > -1) { _local6[_local7].enabled = false; _local7--; }; }; } public static function init(_arg1:int=2):int{ if (TweenLite.version < 10.09){ trace("TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com."); }; TweenLite.overwriteManager = _slot1; mode = _arg1; enabled = true; return (mode); } } }//package gs
Section 135
//TweenLite (gs.TweenLite) package gs { import flash.display.*; import flash.utils.*; import flash.events.*; import gs.utils.tween.*; import gs.plugins.*; public class TweenLite { public var delay:Number; protected var _hasUpdate:Boolean; protected var _hasPlugins:Boolean; public var started:Boolean; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; public var gc:Boolean; public var vars:Object; public var ease:Function; public var tweens:Array; public var exposedVars:Object; public var combinedTimeScale:Number; public var initTime:Number; public static const version:Number = 10.092; private static var _timer:Timer = new Timer(2000); public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var currentTime:uint; public static var masterList:Dictionary = new Dictionary(false); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1}; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public static var overwriteManager:Object; private static var _tlInitted:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ var _local4:int; super(); if (_arg1 == null){ return; }; if (!_tlInitted){ TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]); currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _tlInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; if (typeof(this.vars.ease) != "function"){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars; this.tweens = []; this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); _local4 = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if (((!((_arg1 in masterList))) || ((_local4 == 1)))){ masterList[_arg1] = [this]; } else { masterList[_arg1].push(this); }; if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){ this.target.visible = this.exposedVars.visible; }; }; } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (!(this.target in masterList)){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ _local2[_local2.length] = this; }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function clear():void{ this.tweens = []; this.vars = (this.exposedVars = {ease:this.vars.ease}); _hasUpdate = false; } public function render(_arg1:uint):void{ var _local2:Number; var _local3:Number; var _local4:TweenInfo; var _local5:int; _local2 = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function initTweenVals():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:TweenInfo; if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){ this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false); }; for (_local1 in this.exposedVars) { if ((_local1 in _reservedProps)){ } else { if ((_local1 in plugins)){ _local3 = new (plugins[_local1]); if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){ this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); } else { this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true); _hasPlugins = true; }; } else { this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); }; }; }; if (this.vars.runBackwards == true){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local4 = this.tweens[_local2]; this.tweens[_local2].start = (_local4.start + _local4.change); _local4.change = -(_local4.change); _local2--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.exposedVars, this.tweens); }; } public function complete(_arg1:Boolean=false):void{ var _local2:int; if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (_hasPlugins){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){ this.tweens[_local2].target.onComplete(); }; _local2--; }; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function updateAll(_arg1:Event=null):void{ var _local2:uint; var _local3:Dictionary; var _local4:Array; var _local5:int; var _local6:TweenLite; _local2 = (currentTime = getTimer()); _local3 = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; _local5--; }; }; } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && ((_arg1 in masterList)))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } protected static function killGarbage(_arg1:TimerEvent):void{ var _local2:Dictionary; var _local3:Object; _local2 = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 136
//TweenMax (gs.TweenMax) package gs { import flash.utils.*; import flash.events.*; import gs.utils.tween.*; import gs.plugins.*; import gs.events.*; public class TweenMax extends TweenLite implements IEventDispatcher { protected var _dispatcher:EventDispatcher; protected var _callbacks:Object; public var pauseTime:Number; protected var _repeatCount:Number; protected var _timeScale:Number; public static const version:Number = 10.12; public static var removeTween:Function = TweenLite.removeTween; private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(); ; protected static var _pausedTweens:Dictionary = new Dictionary(false); protected static var _globalTimeScale:Number = 1; public static var killTweensOf:Function = TweenLite.killTweensOf; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _activatedPlugins:Boolean = TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin, HexColorsPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, BevelFilterPlugin, DropShadowFilterPlugin, GlowFilterPlugin, RoundPropsPlugin, BezierPlugin, BezierThroughPlugin, ShortRotationPlugin]); public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){ super(_arg1, _arg2, _arg3); if (TweenLite.version < 10.092){ trace("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com."); }; if (((!((this.combinedTimeScale == 1))) && ((this.target is _slot1)))){ _timeScale = 1; this.combinedTimeScale = _globalTimeScale; } else { _timeScale = this.combinedTimeScale; this.combinedTimeScale = (this.combinedTimeScale * _globalTimeScale); }; if (((!((this.combinedTimeScale == 1))) && (!((this.delay == 0))))){ this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ initDispatcher(); if ((((_arg2 == 0)) && ((this.delay == 0)))){ onUpdateDispatcher(); onCompleteDispatcher(); }; }; _repeatCount = 0; if (((!(isNaN(this.vars.yoyo))) || (!(isNaN(this.vars.loop))))){ this.vars.persist = true; }; if ((((this.delay == 0)) && (!((this.vars.startAt == null))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; } public function set repeatCount(_arg1:Number):void{ _repeatCount = _arg1; } override public function set enabled(_arg1:Boolean):void{ if (!_arg1){ _pausedTweens[this] = null; delete _pausedTweens[this]; }; super.enabled = _arg1; if (_arg1){ this.combinedTimeScale = (_timeScale * _globalTimeScale); }; } public function set reversed(_arg1:Boolean):void{ if (this.reversed != _arg1){ reverse(); }; } override public function render(_arg1:uint):void{ var _local2:Number; var _local3:Number; var _local4:TweenInfo; var _local5:int; _local2 = (((_arg1 - this.startTime) * 0.001) * this.combinedTimeScale); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } protected function adjustStartValues():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:TweenInfo; var _local6:int; _local1 = this.progress; if (_local1 != 0){ _local2 = this.ease(_local1, 0, 1, 1); _local3 = (1 / (1 - _local2)); _local6 = (this.tweens.length - 1); while (_local6 > -1) { _local5 = this.tweens[_local6]; _local4 = (_local5.start + _local5.change); if (_local5.isPlugin){ _local5.change = ((_local4 - _local2) * _local3); } else { _local5.change = ((_local4 - _local5.target[_local5.property]) * _local3); }; _local5.start = (_local4 - _local5.change); _local6--; }; }; } public function get timeScale():Number{ return (_timeScale); } public function restart(_arg1:Boolean=false):void{ if (_arg1){ this.initTime = currentTime; this.startTime = (currentTime + (this.delay * (1000 / this.combinedTimeScale))); } else { this.startTime = currentTime; this.initTime = (currentTime - (this.delay * (1000 / this.combinedTimeScale))); }; _repeatCount = 0; if (this.target != this.vars.onComplete){ render(this.startTime); }; this.pauseTime = NaN; _pausedTweens[this] = null; delete _pausedTweens[this]; this.enabled = true; } public function get paused():Boolean{ return (!(isNaN(this.pauseTime))); } public function killProperties(_arg1:Array):void{ var _local2:Object; var _local3:int; _local2 = {}; _local3 = (_arg1.length - 1); while (_local3 > -1) { _local2[_arg1[_local3]] = true; _local3--; }; killVars(_local2); } public function resume():void{ this.enabled = true; if (!isNaN(this.pauseTime)){ this.initTime = (this.initTime + (currentTime - this.pauseTime)); this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); this.pauseTime = NaN; if (((!(this.started)) && ((currentTime >= this.startTime)))){ activate(); } else { this.active = this.started; }; _pausedTweens[this] = null; delete _pausedTweens[this]; }; } override public function complete(_arg1:Boolean=false):void{ if (((((!(isNaN(this.vars.yoyo))) && ((((_repeatCount < this.vars.yoyo)) || ((this.vars.yoyo == 0)))))) || (((!(isNaN(this.vars.loop))) && ((((_repeatCount < this.vars.loop)) || ((this.vars.loop == 0)))))))){ _repeatCount++; if (!isNaN(this.vars.yoyo)){ this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; }; this.startTime = (_arg1) ? (this.startTime + (this.duration * (1000 / this.combinedTimeScale))) : currentTime; this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); } else { if (this.vars.persist == true){ pause(); }; }; super.complete(_arg1); } public function invalidate(_arg1:Boolean=true):void{ var _local2:Number; if (this.initted){ _local2 = this.progress; if (((!(_arg1)) && (!((_local2 == 0))))){ this.progress = 0; }; this.tweens = []; _hasPlugins = false; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars; initTweenVals(); _timeScale = ((this.vars.timeScale) || (1)); this.combinedTimeScale = (_timeScale * _globalTimeScale); this.delay = ((this.vars.delay) || (0)); if (isNaN(this.pauseTime)){ this.startTime = (this.initTime + ((this.delay * 1000) / this.combinedTimeScale)); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ if (_dispatcher != null){ this.vars.onStart = _callbacks.onStart; this.vars.onUpdate = _callbacks.onUpdate; this.vars.onComplete = _callbacks.onComplete; _dispatcher = null; }; initDispatcher(); }; if (_local2 != 0){ if (_arg1){ adjustStartValues(); } else { this.progress = _local2; }; }; }; } public function get progress():Number{ var _local1:Number; var _local2:Number; _local1 = (isNaN(this.pauseTime)) ? currentTime : this.pauseTime; _local2 = (((((_local1 - this.initTime) * 0.001) - (this.delay / this.combinedTimeScale)) / this.duration) * this.combinedTimeScale); if (_local2 > 1){ return (1); }; if (_local2 < 0){ return (0); }; return (_local2); } public function willTrigger(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.willTrigger(_arg1)); } public function dispatchEvent(_arg1:Event):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.dispatchEvent(_arg1)); } public function get reversed():Boolean{ return ((this.ease == reverseEase)); } public function get repeatCount():Number{ return (_repeatCount); } protected function onStartDispatcher(... _args):void{ if (_callbacks.onStart != null){ _callbacks.onStart.apply(null, this.vars.onStartParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START)); } public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{ var _local4:Number; var _local5:int; var _local6:TweenInfo; var _local7:Object; var _local8:Object; var _local9:Array; var _local10:Boolean; var _local11:Array; var _local12:Object; _local4 = this.progress; if (this.initted){ if (!_arg3){ _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ _local6.target[_local6.property] = _local6.start; }; _local5--; }; }; _local7 = this.vars; _local8 = this.exposedVars; _local9 = this.tweens; _local10 = _hasPlugins; this.tweens = []; this.vars = (this.exposedVars = {}); this.vars[_arg1] = _arg2; initTweenVals(); if (((!((this.ease == reverseEase))) && ((_local7.ease is Function)))){ this.ease = _local7.ease; }; if (((_arg3) && (!((_local4 == 0))))){ adjustStartValues(); }; _local11 = this.tweens; this.vars = _local7; this.exposedVars = _local8; this.tweens = _local9; _local12 = {}; _local12[_arg1] = true; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ this.tweens.splice(_local5, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_local12); if (_local6.target.overwriteProps.length == 0){ this.tweens.splice(_local5, 1); }; }; }; _local5--; }; this.tweens = this.tweens.concat(_local11); _hasPlugins = Boolean(((_local10) || (_hasPlugins))); }; this.vars[_arg1] = (this.exposedVars[_arg1] = _arg2); } public function set timeScale(_arg1:Number):void{ if (_arg1 < 1E-5){ _arg1 = (_timeScale = 1E-5); } else { _timeScale = _arg1; _arg1 = (_arg1 * _globalTimeScale); }; this.initTime = ((currentTime - ((((currentTime - this.initTime) - (this.delay * (1000 / this.combinedTimeScale))) * this.combinedTimeScale) * (1 / _arg1))) - (this.delay * (1000 / _arg1))); if (this.startTime != 999999999999999){ this.startTime = (this.initTime + (this.delay * (1000 / _arg1))); }; this.combinedTimeScale = _arg1; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_dispatcher != null){ _dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } override public function initTweenVals():void{ var _local1:int; var _local2:int; var _local3:String; var _local4:String; var _local5:Array; var _local6:Object; var _local7:TweenInfo; if (((!((this.vars.startAt == null))) && (!((this.delay == 0))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; super.initTweenVals(); if ((((this.exposedVars.roundProps is Array)) && (!((TweenLite.plugins.roundProps == null))))){ _local5 = this.exposedVars.roundProps; _local1 = (_local5.length - 1); while (_local1 > -1) { _local3 = _local5[_local1]; _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local7 = this.tweens[_local2]; if (_local7.name == _local3){ if (_local7.isPlugin){ _local7.target.round = true; } else { if (_local6 == null){ _local6 = new TweenLite.plugins.roundProps(); _local6.add(_local7.target, _local3, _local7.start, _local7.change); _hasPlugins = true; this.tweens[_local2] = new TweenInfo(_local6, "changeFactor", 0, 1, _local3, true); } else { _local6.add(_local7.target, _local3, _local7.start, _local7.change); this.tweens.splice(_local2, 1); }; }; } else { if (((((_local7.isPlugin) && ((_local7.name == "_MULTIPLE_")))) && (!(_local7.target.round)))){ _local4 = ((" " + _local7.target.overwriteProps.join(" ")) + " "); if (_local4.indexOf(((" " + _local3) + " ")) != -1){ _local7.target.round = true; }; }; }; _local2--; }; _local1--; }; }; } protected function initDispatcher():void{ var _local1:Object; var _local2:String; if (_dispatcher == null){ _dispatcher = new EventDispatcher(this); _callbacks = {onStart:this.vars.onStart, onUpdate:this.vars.onUpdate, onComplete:this.vars.onComplete}; if (this.vars.isTV == true){ this.vars = this.vars.clone(); } else { _local1 = {}; for (_local2 in this.vars) { _local1[_local2] = this.vars[_local2]; }; this.vars = _local1; }; this.vars.onStart = onStartDispatcher; this.vars.onComplete = onCompleteDispatcher; if ((this.vars.onStartListener is Function)){ _dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true); }; if ((this.vars.onUpdateListener is Function)){ _dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true); this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; if ((this.vars.onCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true); }; }; } protected function onUpdateDispatcher(... _args):void{ if (_callbacks.onUpdate != null){ _callbacks.onUpdate.apply(null, this.vars.onUpdateParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); } public function set progress(_arg1:Number):void{ this.startTime = (currentTime - ((this.duration * _arg1) * 1000)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); if (!this.started){ activate(); }; render(currentTime); if (!isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.active = false; }; } public function reverse(_arg1:Boolean=true, _arg2:Boolean=true):void{ var _local3:Number; this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; _local3 = this.progress; if (((_arg1) && ((_local3 > 0)))){ this.startTime = (currentTime - ((((1 - _local3) * this.duration) * 1000) / this.combinedTimeScale)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); }; if (_arg2 != false){ if (_local3 < 1){ resume(); } else { restart(); }; }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_dispatcher == null){ initDispatcher(); }; if ((((_arg1 == TweenEvent.UPDATE)) && (!((this.vars.onUpdate == onUpdateDispatcher))))){ this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; _dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function set paused(_arg1:Boolean):void{ if (_arg1){ pause(); } else { resume(); }; } public function hasEventListener(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.hasEventListener(_arg1)); } public function pause():void{ if (isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.enabled = false; _pausedTweens[this] = this; }; } public function reverseEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.ease((_arg4 - _arg1), _arg2, _arg3, _arg4)); } protected function onCompleteDispatcher(... _args):void{ if (_callbacks.onComplete != null){ _callbacks.onComplete.apply(null, this.vars.onCompleteParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); } public static function set globalTimeScale(_arg1:Number):void{ setGlobalTimeScale(_arg1); } public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(true, _arg1, _arg2); } public static function killAllDelayedCalls(_arg1:Boolean=false):void{ killAll(_arg1, false, true); } public static function setGlobalTimeScale(_arg1:Number):void{ var _local2:Dictionary; var _local3:int; var _local4:Array; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; _local2 = masterList; _globalTimeScale = _arg1; for each (_local4 in _local2) { _local3 = (_local4.length - 1); while (_local3 > -1) { if ((_local4[_local3] is _slot1)){ _local4[_local3].timeScale = (_local4[_local3].timeScale * 1); }; _local3--; }; }; } public static function get globalTimeScale():Number{ return (_globalTimeScale); } public static function getTweensOf(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:TweenLite; var _local5:int; _local2 = masterList[_arg1]; _local3 = []; if (_local2 != null){ _local5 = (_local2.length - 1); while (_local5 > -1) { if (!_local2[_local5].gc){ _local3[_local3.length] = _local2[_local5]; }; _local5--; }; }; for each (_local4 in _pausedTweens) { if (_local4.target == _arg1){ _local3[_local3.length] = _local4; }; }; return (_local3); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{ return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, persist:_arg4, overwrite:0})); } public static function isTweening(_arg1:Object):Boolean{ var _local2:Array; var _local3:int; _local2 = getTweensOf(_arg1); _local3 = (_local2.length - 1); while (_local3 > -1) { if (((((_local2[_local3].active) || ((_local2[_local3].startTime == currentTime)))) && (!(_local2[_local3].gc)))){ return (true); }; _local3--; }; return (false); } public static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{ var _local4:Array; var _local5:Boolean; var _local6:int; _local4 = getAllTweens(); _local6 = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local4[_local6] is _slot1)) && ((((_local5 == _arg3)) || (!((_local5 == _arg2))))))){ _local4[_local6].paused = _arg1; }; _local6--; }; } public static function killAllTweens(_arg1:Boolean=false):void{ killAll(_arg1, true, false); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ _arg3.runBackwards = true; return (new TweenMax(_arg1, _arg2, _arg3)); } public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{ var _local4:Array; var _local5:Boolean; var _local6:int; _local4 = getAllTweens(); _local6 = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){ if (_arg1){ _local4[_local6].complete(false); _local4[_local6].clear(); } else { TweenLite.removeTween(_local4[_local6], true); }; }; _local6--; }; } public static function getAllTweens():Array{ var _local1:Dictionary; var _local2:Array; var _local3:Array; var _local4:int; var _local5:TweenLite; _local1 = masterList; _local2 = []; for each (_local3 in _local1) { _local4 = (_local3.length - 1); while (_local4 > -1) { if (!_local3[_local4].gc){ _local2[_local2.length] = _local3[_local4]; }; _local4--; }; }; for each (_local5 in _pausedTweens) { _local2[_local2.length] = _local5; }; return (_local2); } public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(false, _arg1, _arg2); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ return (new TweenMax(_arg1, _arg2, _arg3)); } } }//package gs
Section 137
//MonsterDebugger (nl.demonsters.debugger.MonsterDebugger) package nl.demonsters.debugger { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.system.*; import flash.net.*; public class MonsterDebugger { private const TYPE_VECTOR:String = "Vector"; private const TYPE_BOOLEAN:String = "Boolean"; private const COMMAND_GET_DISPLAYOBJECT:String = "GET_DISPLAYOBJECT"; private const ICON_ROOT:String = "iconRoot"; private const COMMAND_GET_OBJECT:String = "GET_OBJECT"; private const TYPE_XMLLIST:String = "XMLList"; private const COMMAND_TRACE:String = "TRACE"; private const TYPE_DISPLAYOBJECT:String = "DisplayObject"; private const TYPE_XMLVALUE:String = "XMLValue"; private const COMMAND_NOTFOUND:String = "NOTFOUND"; private const COMMAND_MONITOR:String = "MONITOR"; private const ACCESS_METHOD:String = "method"; private const ACCESS_CONSTANT:String = "constant"; private const HIGHLIGHT_BORDER:int = 4; private const TYPE_FUNCTION:String = "Function"; private const TYPE_UINT:String = "uint"; private const TYPE_INT:String = "int"; private const MAX_PACKAGE_BYTES:int = 40000; private const LINE_IN:String = "_debuggerBlue"; private const TYPE_XMLATTRIBUTE:String = "XMLAttribute"; private const COMMAND_SNAPSHOT:String = "SNAPSHOT"; private const ALLOWED_DOMAIN:String = "*"; private const ICON_VARIABLE_READONLY:String = "iconVariableReadonly"; private const ICON_DEFAULT:String = "iconDefault"; private const LINE_OUT:String = "_debuggerRed"; private const COMMAND_BASE:String = "BASE"; private const COMMAND_SHOW_HIGHLIGHT:String = "SHOW_HIGHLIGHT"; private const COMMAND_HIDE_HIGHLIGHT:String = "HIDE_HIGHLIGHT"; private const TYPE_BYTEARRAY:String = "ByteArray"; private const ICON_VARIABLE_WRITEONLY:String = "iconVariableWriteonly"; private const COMMAND_GET_PROPERTIES:String = "GET_PROPERTIES"; private const TYPE_XML:String = "XML"; private const TYPE_XMLNODE:String = "XMLNode"; private const COMMAND_ROOT:String = "ROOT"; private const TYPE_WARNING:String = "Warning"; private const TYPE_VOID:String = "void"; private const PERMISSION_WRITEONLY:String = "writeonly"; private const PERMISSION_READWRITE:String = "readwrite"; private const ICON_VARIABLE:String = "iconVariable"; private const TYPE_BITMAPDATA:String = "BitmapData"; private const TYPE_METHOD:String = "MethodClosure"; private const ICON_XMLATTRIBUTE:String = "iconXMLAttribute"; private const COMMAND_HELLO:String = "HELLO"; private const COMMAND_GET_FUNCTIONS:String = "GET_FUNCTIONS"; private const PERMISSION_READONLY:String = "readonly"; private const ICON_XMLNODE:String = "iconXMLNode"; private const COMMAND_CLEAR_TRACES:String = "CLEAR_TRACES"; private const VERSION:Number = 2.04; private const TYPE_STRING:String = "String"; private const ACCESS_ACCESSOR:String = "accessor"; private const ICON_XMLVALUE:String = "iconXMLValue"; private const COMMAND_SET_PROPERTY:String = "SET_PROPERTY"; private const COMMAND_CALL_METHOD:String = "CALL_METHOD"; private const TYPE_BITMAP:String = "Bitmap"; private const ICON_FUNCTION:String = "iconFunction"; private const HIGHLIGHT_COLOR:uint = 0xFFFF00; private const COMMAND_INSPECT:String = "INSPECT"; private const ICON_WARNING:String = "iconWarning"; private const TYPE_OBJECT:String = "Object"; private const TYPE_NUMBER:String = "Number"; private const TYPE_ARRAY:String = "Array"; private const ACCESS_VARIABLE:String = "variable"; public var _enabled:Boolean;// = true private var lineIn:LocalConnection; private var monitorTime:uint; private var monitor:Timer; private var monitorFrames:uint; private var lineOut:LocalConnection; private var highlight:Sprite;// = null private var monitorSprite:Sprite; private var root:Object;// = null public static const COLOR_WARNING:uint = 0xFF3300; public static const COLOR_NORMAL:uint = 0x111111; public static const COLOR_ERROR:uint = 0xFF0000; private static var instance:MonsterDebugger = null; public function MonsterDebugger(_arg1:Object=null){ var target = _arg1; root = null; highlight = null; _enabled = true; super(); if (instance == null){ instance = this; lineOut = new LocalConnection(); lineOut.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); lineOut.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); lineOut.addEventListener(StatusEvent.STATUS, statusHandler); lineIn = new LocalConnection(); lineIn.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); lineIn.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); lineIn.addEventListener(StatusEvent.STATUS, statusHandler); lineIn.allowDomain(ALLOWED_DOMAIN); lineIn.client = this; monitorTime = getTimer(); monitorFrames = 0; monitorSprite = new Sprite(); monitorSprite.addEventListener(Event.ENTER_FRAME, enterFrameHandler); monitor = new Timer(500); monitor.addEventListener(TimerEvent.TIMER, monitorHandler); monitor.start(); try { lineIn.connect(LINE_IN); } catch(error:ArgumentError) { }; }; if (target != MonsterDebugger.singletonCheck){ instance.root = target; instance.send({text:COMMAND_HELLO, version:VERSION}); }; } private function asyncErrorHandler(_arg1:AsyncErrorEvent):void{ } private function enterFrameHandler(_arg1:Event):void{ if (enabled){ monitorFrames++; }; } private function htmlEscape(_arg1:String):String{ var _local2:XML; if (_arg1){ while (_arg1.indexOf("'") != -1) { _arg1 = _arg1.replace("'", "&apos;"); }; while (_arg1.indexOf("\"") != -1) { _arg1 = _arg1.replace("\"", "&quot;"); }; _local2 = new XML((("<a>" + ??esc_xelem ) + "</a>")); return (_local2.toXMLString().replace(/(^<a>)|(<\/a>$)|(^<a\/>$)/g, "")); //unresolved jump }; return (""); } private function createNode(_arg1:String, _arg2:Object=null, _arg3:Boolean=false):String{ var _local4:String; var _local5:*; _local4 = ""; _local4 = (_local4 + ("<" + _arg1)); if (_arg2){ for (_local5 in _arg2) { _local4 = (_local4 + ((((" " + _local5) + "='") + _arg2[_local5]) + "'")); }; }; if (_arg3){ _local4 = (_local4 + (("></" + _arg1) + ">")); } else { _local4 = (_local4 + ">"); }; return (_local4); } private function htmlUnescape(_arg1:String):String{ var _local2:XML; if (_arg1){ _local2 = <a/> ; _local2.replace(0, _arg1); return (String(_local2)); }; return (""); } private function traceInternal(_arg1:Object, _arg2, _arg3:uint=0x111111, _arg4:Boolean=false, _arg5:int=4):void{ var _local6:XML; if (enabled){ _local6 = XML(parseObject(_arg2, "", _arg4, 1, _arg5)); send({text:COMMAND_TRACE, date:new Date(), target:String(_arg1), xml:_local6, color:_arg3}); }; } private function getObject(_arg1:String="", _arg2:int=0){ var object:*; var splitted:Array; var i:int; var index:Number; var target = _arg1; var parent = _arg2; object = instance.root; if (target != ""){ splitted = target.split("."); i = 0; while (i < (splitted.length - parent)) { if (splitted[i] != ""){ try { if (splitted[i] == "children()"){ object = object.children(); } else { if (splitted[i].indexOf("getChildAt(") == 0){ index = splitted[i].substring(11, splitted[i].indexOf(")", 11)); object = DisplayObjectContainer(object).getChildAt(index); } else { object = object[splitted[i]]; }; }; } catch(error:ReferenceError) { send({text:COMMAND_NOTFOUND, target:target}); break; }; }; i = (i + 1); }; }; return (object); } private function printObject(_arg1, _arg2:String):String{ var _local3:String; _local3 = ""; if (_arg2 == TYPE_BYTEARRAY){ _local3 = (_arg1["length"] + " bytes"); } else { _local3 = htmlEscape(String(_arg1)); }; return (_local3); } private function clearTracesInternal():void{ if (enabled){ send({text:COMMAND_CLEAR_TRACES}); }; } private function parseXML(_arg1, _arg2:String="", _arg3:int=1, _arg4:int=-1):String{ var _local5:String; var _local6:int; var _local7:String; _local5 = ""; _local6 = 0; if ((((_arg4 == -1)) || ((_arg3 <= _arg4)))){ if (_arg2.indexOf("@") != -1){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:_arg1, name:"", type:TYPE_XMLATTRIBUTE, value:_arg1, target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if (_arg1.name() == null){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLVALUE, label:((("(" + TYPE_XMLVALUE) + ") = ") + printObject(_arg1, TYPE_XMLVALUE)), name:"", type:TYPE_XMLVALUE, value:printObject(_arg1, TYPE_XMLVALUE), target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if (_arg1.hasSimpleContent()){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLNODE, label:(((_arg1.name() + " (") + TYPE_XMLNODE) + ")"), name:_arg1.name(), type:TYPE_XMLNODE, value:"", target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); if (_arg1 != ""){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLVALUE, label:((("(" + TYPE_XMLVALUE) + ") = ") + printObject(_arg1, TYPE_XMLVALUE)), name:"", type:TYPE_XMLVALUE, value:printObject(_arg1, TYPE_XMLVALUE), target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); }; _local6 = 0; while (_local6 < _arg1.attributes().length()) { _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:((((("@" + _arg1.attributes()[_local6].name()) + " (") + TYPE_XMLATTRIBUTE) + ") = ") + _arg1.attributes()[_local6]), name:"", type:TYPE_XMLATTRIBUTE, value:_arg1.attributes()[_local6], target:(((_arg2 + ".") + "@") + _arg1.attributes()[_local6].name()), access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); _local6++; }; _local5 = (_local5 + createNode("/node")); } else { _local5 = (_local5 + createNode("node", {icon:ICON_XMLNODE, label:(((_arg1.name() + " (") + TYPE_XMLNODE) + ")"), name:_arg1.name(), type:TYPE_XMLNODE, value:"", target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); _local6 = 0; while (_local6 < _arg1.attributes().length()) { _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:((((("@" + _arg1.attributes()[_local6].name()) + " (") + TYPE_XMLATTRIBUTE) + ") = ") + _arg1.attributes()[_local6]), name:"", type:TYPE_XMLATTRIBUTE, value:_arg1.attributes()[_local6], target:(((_arg2 + ".") + "@") + _arg1.attributes()[_local6].name()), access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); _local6++; }; _local6 = 0; while (_local6 < _arg1.children().length()) { _local7 = ((((_arg2 + ".") + "children()") + ".") + _local6); _local5 = (_local5 + parseXML(_arg1.children()[_local6], _local7, (_arg3 + 1), _arg4)); _local6++; }; _local5 = (_local5 + createNode("/node")); }; }; }; }; return (_local5); } private function send(_arg1:Object):void{ var item:ByteArray; var dataPackages:Array; var i:int; var bytesAvailable:int; var offset:int; var total:int; var length:int; var tmp:ByteArray; var data = _arg1; if (enabled){ item = new ByteArray(); item.writeObject(data); item.compress(); dataPackages = new Array(); i = 0; if (item.length > MAX_PACKAGE_BYTES){ bytesAvailable = item.length; offset = 0; total = Math.ceil((item.length / MAX_PACKAGE_BYTES)); i = 0; while (i < total) { length = bytesAvailable; if (length > MAX_PACKAGE_BYTES){ length = MAX_PACKAGE_BYTES; }; tmp = new ByteArray(); tmp.writeBytes(item, offset, length); dataPackages.push({total:total, nr:(i + 1), bytes:tmp}); bytesAvailable = (bytesAvailable - length); offset = (offset + length); i = (i + 1); }; } else { dataPackages.push({total:1, nr:1, bytes:item}); }; i = 0; while (i < dataPackages.length) { try { lineOut.send(LINE_OUT, "onReceivedData", dataPackages[i]); } catch(error:Error) { break; }; i = (i + 1); }; }; } private function securityErrorHandler(_arg1:SecurityErrorEvent):void{ } private function monitorHandler(_arg1:TimerEvent):void{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; if (enabled){ _local2 = System.totalMemory; _local3 = getTimer(); _local4 = (_local3 - monitorTime); _local5 = ((monitorFrames / _local4) * 1000); monitorFrames = 0; monitorTime = _local3; send({text:COMMAND_MONITOR, memory:_local2, fps:_local5, time:_local3, date:new Date()}); }; } private function isDisplayObject(_arg1):Boolean{ return ((((_arg1 is DisplayObject)) || ((_arg1 is DisplayObjectContainer)))); } private function snapshotInternal(_arg1:DisplayObject, _arg2:uint=0x111111):void{ var _local3:BitmapData; var _local4:ByteArray; if (enabled){ _local3 = new BitmapData(_arg1.width, _arg1.height); _local3.draw(_arg1); _local4 = _local3.getPixels(new Rectangle(0, 0, _arg1.width, _arg1.height)); send({text:COMMAND_SNAPSHOT, date:new Date(), target:String(_arg1), bytes:_local4, width:_arg1.width, height:_arg1.height, color:_arg2}); _local3.dispose(); _local4 = null; }; } public function onReceivedData(_arg1:ByteArray):void{ var object:*; var method:Function; var xml:XML; var command:Object; var bounds:Rectangle; var data = _arg1; if (enabled){ data.uncompress(); command = data.readObject(); switch (command["text"]){ case COMMAND_HELLO: send({text:COMMAND_HELLO, version:VERSION}); break; case COMMAND_ROOT: object = getObject("", 0); if (object != null){ xml = XML(parseObject(object, "", command["functions"], 1, 2)); send({text:COMMAND_ROOT, xml:xml}); if (isDisplayObject(object)){ xml = XML(parseDisplayObject(object, "", command["functions"], 1, 2)); send({text:COMMAND_BASE, xml:xml}); }; }; break; case COMMAND_GET_OBJECT: object = getObject(command["target"], 0); if (object != null){ xml = XML(parseObject(object, command["target"], command["functions"], 1, 2)); send({text:COMMAND_GET_OBJECT, xml:xml}); }; break; case COMMAND_GET_DISPLAYOBJECT: object = getObject(command["target"], 0); if (object != null){ if (isDisplayObject(object)){ xml = XML(parseDisplayObject(object, command["target"], command["functions"], 1, 2)); send({text:COMMAND_GET_DISPLAYOBJECT, xml:xml}); }; }; break; case COMMAND_GET_PROPERTIES: object = getObject(command["target"], 0); if (object != null){ xml = XML(parseObject(object, command["target"], false, 1, 1)); send({text:COMMAND_GET_PROPERTIES, xml:xml}); }; break; case COMMAND_GET_FUNCTIONS: object = getObject(command["target"], 0); if (object != null){ xml = XML(getFunctions(object, command["target"])); send({text:COMMAND_GET_FUNCTIONS, xml:xml}); }; break; case COMMAND_SET_PROPERTY: object = getObject(command["target"], 1); if (object != null){ try { object[command["name"]] = command["value"]; send({text:COMMAND_SET_PROPERTY, value:object[command["name"]]}); } catch(error1:Error) { send({text:COMMAND_NOTFOUND, target:command["target"]}); break; }; }; break; case COMMAND_CALL_METHOD: method = getObject(command["target"], 0); if (method != null){ if (command["returnType"] == TYPE_VOID){ method.apply(this, command["arguments"]); } else { object = method.apply(this, command["arguments"]); xml = XML(parseObject(object, "", false, 1, 4)); send({text:COMMAND_CALL_METHOD, id:command["id"], xml:xml}); }; }; break; case COMMAND_SHOW_HIGHLIGHT: if (highlight != null){ try { highlight.parent.removeChild(highlight); highlight = null; } catch(error2:Error) { }; }; object = getObject(command["target"], 0); if (((isDisplayObject(object)) && (isDisplayObject(object["parent"])))){ bounds = object.getBounds(object["parent"]); highlight = new Sprite(); highlight.x = 0; highlight.y = 0; highlight.graphics.beginFill(0, 0); highlight.graphics.lineStyle(HIGHLIGHT_BORDER, HIGHLIGHT_COLOR); highlight.graphics.drawRect(bounds.x, bounds.y, bounds.width, bounds.height); highlight.graphics.endFill(); highlight.mouseChildren = false; highlight.mouseEnabled = false; try { object["parent"].addChild(highlight); } catch(error3:Error) { highlight = null; }; }; break; case COMMAND_HIDE_HIGHLIGHT: if (highlight != null){ try { highlight.parent.removeChild(highlight); highlight = null; } catch(error4:Error) { }; }; break; }; }; } private function parseDisplayObject(_arg1, _arg2:String="", _arg3:Boolean=false, _arg4:int=1, _arg5:int=4):String{ var xml:String; var childs:Array; var child:DisplayObject; var childType:String; var childIcon:String; var childName:String; var childTarget:String; var childChildren:String; var i:int; var n:int; var ojectName:String; var msg:String; var object = _arg1; var target = _arg2; var functions = _arg3; var currentDepth = _arg4; var maxDepth = _arg5; xml = ""; childType = ""; childIcon = ""; childName = ""; childTarget = ""; childChildren = ""; i = 0; n = 0; if ((((maxDepth == -1)) || ((currentDepth <= maxDepth)))){ if (currentDepth == 1){ xml = (xml + createNode("root")); }; try { if (currentDepth == 1){ ojectName = DisplayObject(object).name; if ((((ojectName == null)) || ((ojectName == "null")))){ ojectName = "DisplayObject"; }; xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + ojectName) + ")"), target:target})); }; childs = new Array(); i = 0; while (i < DisplayObjectContainer(object).numChildren) { childs.push(DisplayObjectContainer(object).getChildAt(i)); i = (i + 1); }; i = 0; while (i < childs.length) { child = childs[i]; childName = describeType(child).@name; childType = parseType(childName); childTarget = ((((target + ".") + "getChildAt(") + i) + ")"); childIcon = ((child is DisplayObjectContainer)) ? ICON_ROOT : ICON_VARIABLE; childChildren = ((child is DisplayObjectContainer)) ? String(DisplayObjectContainer(child).numChildren) : ""; xml = (xml + createNode("node", {icon:childIcon, label:((((child.name + " (") + childType) + ") ") + childChildren), name:child.name, type:childType, value:printObject(child, childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseDisplayObject(child, childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error13:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } catch(error14:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); send({text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}); }; if (currentDepth == 1){ xml = (xml + createNode("/root")); }; }; return (xml); } private function parseType(_arg1:String):String{ var _local2:String; _local2 = _arg1; if (_arg1.lastIndexOf("::") != -1){ _local2 = _arg1.substring((_arg1.lastIndexOf("::") + 2), _arg1.length); }; if (_local2.lastIndexOf(".") != -1){ _local2 = _local2.substring(0, _local2.lastIndexOf(".")); }; if (_local2 == TYPE_METHOD){ _local2 = TYPE_FUNCTION; }; return (htmlEscape(_local2)); } private function parseObject(_arg1, _arg2:String="", _arg3:Boolean=false, _arg4:int=1, _arg5:int=4):String{ var xml:String; var childType:String; var childName:String; var childTarget:String; var description:XML; var type:String; var base:String; var isXML:Boolean; var isXMLString:XML; var i:int; var n:int; var keys:Array; var key:*; var properties:Array; var prop:*; var variables:XMLList; var accessors:XMLList; var constants:XMLList; var methods:XMLList; var variablesArr:Array; var methodsArr:Array; var double:Boolean; var permission:String; var icon:String; var returnType:String; var parameters:XMLList; var args:Array; var msg:String; var object = _arg1; var target = _arg2; var functions = _arg3; var currentDepth = _arg4; var maxDepth = _arg5; xml = ""; childType = ""; childName = ""; childTarget = ""; description = new XML(); type = ""; base = ""; isXML = false; i = 0; n = 0; if ((((maxDepth == -1)) || ((currentDepth <= maxDepth)))){ if (currentDepth == 1){ xml = (xml + createNode("root")); }; try { description = describeType(object); type = parseType(description.@name); base = parseType(description.@base); if (((functions) && ((base == TYPE_FUNCTION)))){ xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:"(Function)", name:"", type:TYPE_FUNCTION, value:"", target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if ((((type == TYPE_ARRAY)) || ((type == TYPE_VECTOR)))){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("length" + " (") + TYPE_UINT) + ") = ") + object["length"]), name:"length", type:TYPE_UINT, value:object["length"], target:((target + ".") + "length"), access:ACCESS_VARIABLE, permission:PERMISSION_READONLY}, true)); keys = new Array(); for (key in object) { keys.push(key); }; keys.sort(); i = 0; while (i < keys.length) { childType = parseType(describeType(object[keys[i]]).@name); childTarget = ((target + ".") + String(keys[i])); if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[keys[i]]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error1:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((((("[" + keys[i]) + "] (") + childType) + ") = ") + printObject(object[keys[i]], childType)), name:(("[" + keys[i]) + "]"), type:childType, value:printObject(object[keys[i]], childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("[" + keys[i]) + "] (") + childType) + ")"), name:(("[" + keys[i]) + "]"), type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error2:Error) { }; } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("[" + keys[i]) + "] (") + childType) + ")"), name:(("[" + keys[i]) + "]"), type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseObject(object[keys[i]], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error3:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_OBJECT){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; properties = new Array(); for (prop in object) { properties.push(prop); }; properties.sort(); i = 0; while (i < properties.length) { childType = parseType(describeType(object[properties[i]]).@name); childTarget = ((target + ".") + properties[i]); if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[properties[i]]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error4:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((((properties[i] + " (") + childType) + ") = ") + printObject(object[properties[i]], childType)), name:properties[i], type:childType, value:printObject(object[properties[i]], childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((properties[i] + " (") + childType) + ")"), name:properties[i], type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error5:Error) { }; } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((properties[i] + " (") + childType) + ")"), name:properties[i], type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseObject(object[properties[i]], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error6:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_XML){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + parseXML(object, ((target + ".") + "cildren()"), currentDepth, maxDepth)); if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_XMLLIST){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("length" + " (") + TYPE_UINT) + ") = ") + object.length()), name:"length", type:TYPE_UINT, value:object.length(), target:((target + ".") + "length"), access:ACCESS_VARIABLE, permission:PERMISSION_READONLY}, true)); i = 0; while (i < object.length()) { xml = (xml + parseXML(object[i], (((target + ".") + String(i)) + ".children()"), currentDepth, maxDepth)); i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if ((((((((((type == TYPE_STRING)) || ((type == TYPE_BOOLEAN)))) || ((type == TYPE_NUMBER)))) || ((type == TYPE_INT)))) || ((type == TYPE_UINT)))){ isXML = false; isXMLString = new XML(); if (type == TYPE_STRING){ try { isXMLString = new XML(object); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error7:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((("(" + type) + ") = ") + printObject(object, type)), name:"", type:type, value:printObject(object, type), target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(("(" + type) + ")"), name:"", type:type, value:"", target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((target + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error8:Error) { }; } else { if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; variables = description..variable; accessors = description..accessor; constants = description..constant; methods = description..method; variablesArr = new Array(); methodsArr = new Array(); double = false; permission = ""; icon = ""; double = false; i = 0; while (i < variables.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == variables[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:variables[i].@name, xml:variables[i], access:ACCESS_VARIABLE}); }; i = (i + 1); }; double = false; i = 0; while (i < accessors.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == accessors[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:accessors[i].@name, xml:accessors[i], access:ACCESS_ACCESSOR}); }; i = (i + 1); }; double = false; i = 0; while (i < constants.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == constants[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:constants[i].@name, xml:constants[i], access:ACCESS_CONSTANT}); }; i = (i + 1); }; double = false; i = 0; while (i < methods.length()) { n = 0; while (n < methodsArr.length) { if (methodsArr[n].name == methods[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ methodsArr.push({name:methods[i].@name, xml:methods[i], access:ACCESS_METHOD}); }; i = (i + 1); }; variablesArr.sortOn("name"); methodsArr.sortOn("name"); i = 0; while (i < variablesArr.length) { childType = parseType(variablesArr[i].xml.@type); childName = variablesArr[i].xml.@name; childTarget = ((target + ".") + childName); permission = PERMISSION_READWRITE; icon = ICON_VARIABLE; if (variablesArr[i].access == ACCESS_CONSTANT){ permission = PERMISSION_READONLY; icon = ICON_VARIABLE_READONLY; }; if (variablesArr[i].xml.@access == PERMISSION_READONLY){ permission = PERMISSION_READONLY; icon = ICON_VARIABLE_READONLY; }; if (variablesArr[i].xml.@access == PERMISSION_WRITEONLY){ permission = PERMISSION_WRITEONLY; icon = ICON_VARIABLE_WRITEONLY; }; if (permission != PERMISSION_WRITEONLY){ if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[childName]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error9:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:icon, label:((((childName + " (") + childType) + ") = ") + printObject(object[childName], childType)), name:childName, type:childType, value:printObject(object[childName], childType), target:childTarget, access:variablesArr[i].access, permission:permission}, true)); } else { xml = (xml + createNode("node", {icon:icon, label:(((childName + " (") + childType) + ")"), name:childName, type:childType, value:"", target:childTarget, access:variablesArr[i].access, permission:permission}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error10:Error) { }; } else { xml = (xml + createNode("node", {icon:icon, label:(((childName + " (") + childType) + ")"), name:childName, type:childType, target:childTarget, access:variablesArr[i].access, permission:permission})); try { xml = (xml + parseObject(object[childName], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error11:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; }; i = (i + 1); }; if (functions){ i = 0; while (i < methodsArr.length) { childType = TYPE_FUNCTION; childName = methodsArr[i].xml.@name; childTarget = ((target + ".") + childName); returnType = parseType(methodsArr[i].xml.@returnType); parameters = methodsArr[i].xml..parameter; args = new Array(); n = 0; while (n < parameters.length()) { args.push(parseType(parameters[n].@type)); n = (n + 1); }; xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:((((childName + "(") + args.join(", ")) + "):") + returnType), args:args.join(", "), name:childName, type:TYPE_FUNCTION, access:variablesArr[i].access, returnType:returnType, target:childTarget}, true)); i = (i + 1); }; }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; }; }; }; }; }; }; } catch(error12:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); send({text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}); }; if (currentDepth == 1){ xml = (xml + createNode("/root")); }; }; return (xml); } private function getFunctions(_arg1, _arg2:String=""):String{ var xml:String; var description:XML; var type:String; var childType:String; var childName:String; var childTarget:String; var methods:XMLList; var methodsArr:Array; var returnType:String; var parameters:XMLList; var args:Array; var argsString:String; var optional:Boolean; var double:Boolean; var i:int; var n:int; var msg:String; var object = _arg1; var target = _arg2; xml = ""; xml = (xml + createNode("root")); try { description = describeType(object); type = parseType(description.@name); childType = ""; childName = ""; childTarget = ""; methods = description..method; methodsArr = new Array(); optional = false; double = false; i = 0; n = 0; xml = (xml + createNode("node", {icon:ICON_DEFAULT, label:(("(" + type) + ")"), target:target})); i = 0; while (i < methods.length()) { n = 0; while (n < methodsArr.length) { if (methodsArr[n].name == methods[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ methodsArr.push({name:methods[i].@name, xml:methods[i], access:ACCESS_METHOD}); }; i = (i + 1); }; methodsArr.sortOn("name"); i = 0; while (i < methodsArr.length) { childType = TYPE_FUNCTION; childName = methodsArr[i].xml.@name; childTarget = ((target + ".") + childName); returnType = parseType(methodsArr[i].xml.@returnType); parameters = methodsArr[i].xml..parameter; args = new Array(); argsString = ""; optional = false; n = 0; while (n < parameters.length()) { if ((((parameters[n].@optional == "true")) && (!(optional)))){ optional = true; args.push("["); }; args.push(parseType(parameters[n].@type)); n = (n + 1); }; if (optional){ args.push("]"); }; argsString = args.join(", "); argsString = argsString.replace("[, ", "["); argsString = argsString.replace(", ]", "]"); xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:((((childName + "(") + argsString) + "):") + returnType), args:argsString, name:childName, type:TYPE_FUNCTION, access:ACCESS_METHOD, returnType:returnType, target:childTarget})); n = 0; while (n < parameters.length()) { xml = (xml + createNode("parameter", {type:parseType(parameters[n].@type), index:parameters[n].@index, optional:parameters[n].@optional}, true)); n = (n + 1); }; xml = (xml + createNode("/node")); i = (i + 1); }; xml = (xml + createNode("/node")); } catch(error:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); send({text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}); }; xml = (xml + createNode("/root")); return (xml); } private function statusHandler(_arg1:StatusEvent):void{ } public static function get enabled():Boolean{ if (instance == null){ instance = new MonsterDebugger(null); }; return (instance._enabled); } public static function snapshot(_arg1:DisplayObject, _arg2:uint=0x111111):void{ if (instance == null){ instance = new MonsterDebugger(MonsterDebugger.singletonCheck); }; if (MonsterDebugger.enabled){ instance.snapshotInternal(_arg1, _arg2); }; } public static function trace(_arg1:Object, _arg2, _arg3:uint=0x111111, _arg4:Boolean=false, _arg5:int=4):void{ if (instance == null){ instance = new MonsterDebugger(MonsterDebugger.singletonCheck); }; if (MonsterDebugger.enabled){ instance.traceInternal(_arg1, _arg2, _arg3, _arg4, _arg5); }; } public static function set enabled(_arg1:Boolean):void{ if (instance == null){ instance = new MonsterDebugger(null); }; instance._enabled = _arg1; } public static function inspect(_arg1:Object):void{ var _local2:*; var _local3:XML; if (((!((instance == null))) && (!((_arg1 == null))))){ instance.root = _arg1; _local2 = instance.getObject("", 0); if (_local2 != null){ _local3 = XML(instance.parseObject(_local2, "", false, 1, 2)); instance.send({text:instance.COMMAND_INSPECT, xml:_local3}); if (instance.isDisplayObject(_local2)){ _local3 = XML(instance.parseDisplayObject(_local2, "", false, 1, 2)); instance.send({text:instance.COMMAND_BASE, xml:_local3}); }; }; }; } public static function clearTraces():void{ if (instance == null){ instance = new MonsterDebugger(MonsterDebugger.singletonCheck); }; if (MonsterDebugger.enabled){ instance.clearTracesInternal(); }; } private static function singletonCheck():void{ } } }//package nl.demonsters.debugger
Section 138
//abeja_131 (ZooTransport_fla.abeja_131) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class abeja_131 extends MovieClip { public function abeja_131(){ addFrameScript(1, frame2, 2, frame3); } function frame3(){ stop(); } function frame2(){ gotoAndPlay(1); } } }//package ZooTransport_fla
Section 139
//ag_intro_mc_313 (ZooTransport_fla.ag_intro_mc_313) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class ag_intro_mc_313 extends MovieClip { public var tar; public function ag_intro_mc_313(){ addFrameScript(0, frame1, 217, frame218, 218, frame219); } function frame218(){ } function frame1(){ gotoAndPlay(2); } function frame219(){ stop(); tar = parent; tar.play(); } } }//package ZooTransport_fla
Section 140
//bellota_132 (ZooTransport_fla.bellota_132) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class bellota_132 extends MovieClip { public function bellota_132(){ addFrameScript(1, frame2, 2, frame3); } function frame3(){ stop(); } function frame2(){ gotoAndPlay(1); } } }//package ZooTransport_fla
Section 141
//cangrejo_133 (ZooTransport_fla.cangrejo_133) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class cangrejo_133 extends MovieClip { public function cangrejo_133(){ addFrameScript(1, frame2, 2, frame3); } function frame3(){ stop(); } function frame2(){ gotoAndPlay(1); } } }//package ZooTransport_fla
Section 142
//FPS_316 (ZooTransport_fla.FPS_316) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class FPS_316 extends MovieClip { public var prevSecondTime:Number; public var secondTime:Number; public var tf:TextField; public var frames:Number; public var time:Number; public var frameTime:Number; public var fps:String; public var prevFrameTime:Number; public var iBar:MovieClip; public function FPS_316(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ prevFrameTime = getTimer(); prevSecondTime = getTimer(); frames = 0; fps = "..."; } function frame2(){ stop(); this.addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(_arg1:Event):void{ time = getTimer(); frameTime = (time - prevFrameTime); secondTime = (time - prevSecondTime); if (secondTime >= 1000){ fps = frames.toString(); frames = 0; prevSecondTime = time; } else { frames++; }; prevFrameTime = time; tf.text = (((fps + " FPS / ") + frameTime) + " MS"); iBar.scaleX = (iBar.scaleX - ((iBar.scaleX - (frameTime / 10)) / 5)); parent.setChildIndex(this, (parent.numChildren - 1)); } } }//package ZooTransport_fla
Section 143
//ingameinterface_walkbutton_183 (ZooTransport_fla.ingameinterface_walkbutton_183) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class ingameinterface_walkbutton_183 extends MovieClip { public function ingameinterface_walkbutton_183(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 144
//intro_splash_tanoku_283 (ZooTransport_fla.intro_splash_tanoku_283) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class intro_splash_tanoku_283 extends MovieClip { public var tar; public function intro_splash_tanoku_283(){ addFrameScript(199, frame200); } function frame200(){ tar = parent; tar.play(); } } }//package ZooTransport_fla
Section 145
//mission31_button_268 (ZooTransport_fla.mission31_button_268) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission31_button_268 extends MovieClip { public function mission31_button_268(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 146
//mission32_button_269 (ZooTransport_fla.mission32_button_269) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission32_button_269 extends MovieClip { public function mission32_button_269(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 147
//mission33_button_270 (ZooTransport_fla.mission33_button_270) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission33_button_270 extends MovieClip { public function mission33_button_270(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 148
//mission34_button_271 (ZooTransport_fla.mission34_button_271) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission34_button_271 extends MovieClip { public function mission34_button_271(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 149
//mission35_button_272 (ZooTransport_fla.mission35_button_272) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission35_button_272 extends MovieClip { public function mission35_button_272(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 150
//mission36_button_273 (ZooTransport_fla.mission36_button_273) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission36_button_273 extends MovieClip { public function mission36_button_273(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 151
//mission37_button_274 (ZooTransport_fla.mission37_button_274) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission37_button_274 extends MovieClip { public function mission37_button_274(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 152
//mission38_button_275 (ZooTransport_fla.mission38_button_275) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission38_button_275 extends MovieClip { public function mission38_button_275(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 153
//mission39_button_276 (ZooTransport_fla.mission39_button_276) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission39_button_276 extends MovieClip { public function mission39_button_276(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 154
//mission40_button_277 (ZooTransport_fla.mission40_button_277) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class mission40_button_277 extends MovieClip { public function mission40_button_277(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ZooTransport_fla
Section 155
//murcielago_134 (ZooTransport_fla.murcielago_134) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class murcielago_134 extends MovieClip { public function murcielago_134(){ addFrameScript(1, frame2, 2, frame3); } function frame3(){ stop(); } function frame2(){ gotoAndPlay(1); } } }//package ZooTransport_fla
Section 156
//objetivo_309 (ZooTransport_fla.objetivo_309) package ZooTransport_fla { import flash.display.*; public dynamic class objetivo_309 extends MovieClip { public var mirilla:MovieClip; } }//package ZooTransport_fla
Section 157
//penguinanimrandom_122 (ZooTransport_fla.penguinanimrandom_122) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class penguinanimrandom_122 extends MovieClip { public var i:int; public function penguinanimrandom_122(){ addFrameScript(0, frame1, 199, frame200, 399, frame400, 599, frame600, 799, frame800, 999, frame1000, 1199, frame1200, 1399, frame1400, 1599, frame1600, 0x0707, frame1800); } function frame200(){ gotoAndStop(1); } function frame600(){ gotoAndStop(1); } function frame1000(){ gotoAndStop(1); } function frame1400(){ gotoAndStop(1); } function frame1800(){ gotoAndStop(1); } function frame1(){ i = (Math.random() * 9); gotoAndPlay(((i * 200) + 1)); } function frame400(){ gotoAndStop(1); } function frame800(){ gotoAndStop(1); } function frame1200(){ gotoAndStop(1); } function frame1600(){ gotoAndStop(1); } } }//package ZooTransport_fla
Section 158
//piedra_135 (ZooTransport_fla.piedra_135) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class piedra_135 extends MovieClip { public function piedra_135(){ addFrameScript(1, frame2, 2, frame3); } function frame3(){ stop(); } function frame2(){ gotoAndPlay(1); } } }//package ZooTransport_fla
Section 159
//satelite_310 (ZooTransport_fla.satelite_310) package ZooTransport_fla { import flash.display.*; public dynamic class satelite_310 extends MovieClip { public var area:MovieClip; } }//package ZooTransport_fla
Section 160
//sponsor_mc_286 (ZooTransport_fla.sponsor_mc_286) package ZooTransport_fla { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class sponsor_mc_286 extends MovieClip { public var tar; public function sponsor_mc_286(){ addFrameScript(99, frame100); } function frame100(){ stop(); tar = parent; tar.play(); } } }//package ZooTransport_fla
Section 161
//Abeja (Abeja) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Abeja extends MovieClip { public function Abeja(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 162
//achipopups (achipopups) package { import flash.display.*; public dynamic class achipopups extends MovieClip { } }//package
Section 163
//Actor (Actor) package { import flash.display.*; import flash.events.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class Actor extends EventDispatcher { protected var _disfraz:DisplayObject; protected var _tipoActor:int; protected var _indice:int; protected var _cuerpo:b2Body; public function Actor(_arg1:b2Body, _arg2:DisplayObject){ if (_arg1 != null){ _cuerpo = _arg1; _cuerpo.SetUserData(this); } else { _cuerpo = null; }; _disfraz = _arg2; actualizaMiApariencia(); } public function set tipoActor(_arg1:int):void{ _tipoActor = _arg1; } public function explotar():void{ } protected function limpiarAntesDeBorrar():void{ } protected function gestionarFueraDeLimites():void{ } public function get disfraz():DisplayObject{ return (_disfraz); } public function set indice(_arg1:int):void{ _indice = _arg1; } public function get indice():int{ return (_indice); } public function destruir():void{ limpiarAntesDeBorrar(); if (_disfraz != null){ _disfraz.parent.removeChild(_disfraz); }; if (_cuerpo != null){ VariablesGlobales.mundo.DestroyBody(_cuerpo); }; } public function get cuerpo():b2Body{ return (_cuerpo); } public function get tipoActor():int{ return (_tipoActor); } public function afectadoPorExplosion():void{ } public function set disfraz(_arg1:DisplayObject):void{ _disfraz = _arg1; } private function actualizaMiApariencia():void{ if (_cuerpo != null){ _disfraz.x = (_cuerpo.GetPosition().x * VariablesGlobales.RATIO); _disfraz.y = (_cuerpo.GetPosition().y * VariablesGlobales.RATIO); _disfraz.rotation = ((_cuerpo.GetAngle() * 180) / Math.PI); }; } public function aplicarFuerza(_arg1:b2Vec2, _arg2:b2Vec2):void{ _cuerpo.ApplyForce(_arg1, _arg2); } public function actualizaAhora():void{ actualizaMiApariencia(); actualizacionEspecificaHijo(); if (!VariablesGlobales.limitesMundo.containsPoint(new Point(_disfraz.x, _disfraz.y))){ gestionarFueraDeLimites(); }; } protected function actualizacionEspecificaHijo():void{ } public function set cuerpo(_arg1:b2Body):void{ _cuerpo = _arg1; } } }//package
Section 164
//Agua (Agua) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class Agua extends Actor { public function Agua(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new Sprite(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((300 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((300 / VariablesGlobales.RATIO), (150 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (150 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); } override protected function actualizacionEspecificaHijo():void{ super.actualizacionEspecificaHijo(); } } }//package
Section 165
//Aguila (Aguila) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Aguila extends MovieClip { public function Aguila(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 166
//Bellota (Bellota) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Bellota extends MovieClip { public function Bellota(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 167
//Camara (Camara) package { import flash.display.*; import flash.events.*; import flash.geom.*; import gs.*; public class Camara { private var _padreMinimapa:DisplayObjectContainer; private var _miniMapaDatosSprite:Sprite; private var _padre:DisplayObjectContainer; private var _miniMapaDatos:Array; private var _arrastrandoMinicamara:Boolean;// = false private var _minimapaActivo:Boolean;// = false private var _limitesCamara:Rectangle; private var _miniMapaPuntoOrigen:Point; private var _camara:Sprite; private var _arrastrando:Boolean;// = false private var _miniMapa:Sprite; private var _altoMiniMapa:Number; private var _miniCamara:Sprite; private var _anchoMiniMapa:Number; public static const ESCALA_MINIMAPA:int = 16; public static var DESPLAZAMIENTO_CAMARA:Number = 25; public function Camara(){ _arrastrando = false; _minimapaActivo = false; _arrastrandoMinicamara = false; super(); } public function posicionActual():Point{ var _local1:Point; _local1 = new Point(_camara.x, _camara.y); return (_local1); } private function manejarLimitesPantalla():void{ if ((_camara.x - (_camara.width / 2)) < _limitesCamara.left){ _camara.x = (_limitesCamara.left + (_camara.width / 2)); } else { if ((_camara.x + (_camara.width / 2)) > _limitesCamara.right){ _camara.x = (_limitesCamara.right - (_camara.width / 2)); }; }; if ((_camara.y - (_camara.height / 2)) < _limitesCamara.top){ _camara.y = (_limitesCamara.top + (_camara.height / 2)); } else { if ((_camara.y + (_camara.height / 2)) > _limitesCamara.bottom){ _camara.y = (_limitesCamara.bottom - (_camara.height / 2)); }; }; } private function manejarMouseOutMinicamara(_arg1:MouseEvent):void{ _miniCamara.stopDrag(); _arrastrandoMinicamara = false; } public function crearMinimapa(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Number, _arg4:Point){ _minimapaActivo = true; _padreMinimapa = _arg1; _anchoMiniMapa = _arg2; _altoMiniMapa = _arg3; _miniMapaPuntoOrigen = _arg4; _miniMapa = new Sprite(); _miniMapa.graphics.lineStyle(0, 0, 1, false); _miniMapa.graphics.beginFill(0, 1); _miniMapa.graphics.drawRect(_miniMapaPuntoOrigen.x, _miniMapaPuntoOrigen.y, (_anchoMiniMapa / ESCALA_MINIMAPA), (_altoMiniMapa / ESCALA_MINIMAPA)); _padreMinimapa.addChild(_miniMapa); _miniMapa.addEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownkMiniMapa); _miniMapaDatosSprite = new Sprite(); _miniMapaDatosSprite.mouseEnabled = false; _padreMinimapa.addChild(_miniMapaDatosSprite); _miniCamara = new Sprite(); _miniCamara.graphics.lineStyle(0, 3322827, 1, false); _miniCamara.graphics.beginFill(3322827, 0.2); _miniCamara.graphics.drawRect(_miniMapaPuntoOrigen.x, _miniMapaPuntoOrigen.y, (_camara.width / ESCALA_MINIMAPA), (_camara.height / ESCALA_MINIMAPA)); _miniMapa.addChild(_miniCamara); _miniCamara.addEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownMinicamara); _miniCamara.addEventListener(MouseEvent.MOUSE_UP, manejarMouseUpMinicamara); _miniCamara.addEventListener(MouseEvent.MOUSE_OUT, manejarMouseOutMinicamara); } private function manejarMouseDownkMiniMapa(_arg1:MouseEvent):void{ if (_arrastrandoMinicamara == false){ irA(new Point((_arg1.localX * Camara.ESCALA_MINIMAPA), ((_arg1.localY - (_miniCamara.height / 2)) * Camara.ESCALA_MINIMAPA))); }; } private function manejarClickMiniMapa(_arg1:MouseEvent):void{ } public function get miniMapaDatos():Array{ return (_miniMapaDatos); } public function finalizarMinimapa(){ } private function pintarDatosMinimapa():void{ var _local1:int; var _local2:int; if (_minimapaActivo){ _miniMapaDatosSprite.graphics.clear(); _local1 = 0; while (_local1 < _miniMapaDatos.length) { _local2 = 0; while (_local2 < _miniMapaDatos[_local1].length) { if (_miniMapaDatos[_local1][_local2] != 0){ _miniMapaDatosSprite.graphics.lineStyle(0, 0xFFFFFF, 0, false); _miniMapaDatosSprite.graphics.beginFill(0xFFFFFF, 1); _miniMapaDatosSprite.graphics.drawRect((((_local1 * VariablesGlobales.LADO_TILE) / Camara.ESCALA_MINIMAPA) + _miniMapaPuntoOrigen.x), (((_local2 * VariablesGlobales.LADO_TILE) / Camara.ESCALA_MINIMAPA) + _miniMapaPuntoOrigen.y), (VariablesGlobales.LADO_TILE / ESCALA_MINIMAPA), (VariablesGlobales.LADO_TILE / ESCALA_MINIMAPA)); }; _local2++; }; _local1++; }; }; } public function get limitesCamara():Rectangle{ return (_limitesCamara); } public function irA(_arg1:Point, _arg2:Number=0.2){ TweenMax.to(_camara, _arg2, {x:_arg1.x, y:_arg1.y}); } public function set miniMapaDatos(_arg1:Array):void{ _miniMapaDatos = _arg1; pintarDatosMinimapa(); } private function manejarControlMinimapa():void{ var _local1:Number; var _local2:Number; if (_miniCamara != null){ if (_arrastrandoMinicamara == true){ _local1 = ((_miniCamara.x + (_miniCamara.width / 2)) * Camara.ESCALA_MINIMAPA); _local2 = ((_miniCamara.y + (_miniCamara.height / 2)) * Camara.ESCALA_MINIMAPA); irA(new Point(_local1, _local2)); } else { _miniCamara.x = ((_camara.x / Camara.ESCALA_MINIMAPA) - (_miniCamara.width / 2)); _miniCamara.y = ((_camara.y / Camara.ESCALA_MINIMAPA) - (_miniCamara.height / 2)); }; }; } public function zoom(_arg1:Number, _arg2:int=1){ if (_arg1 != 0){ TweenMax.to(_camara, _arg2, {width:(VariablesGlobales.ANCHO_PANTALLA * _arg1), height:(VariablesGlobales.ALTO_PANTALLA * _arg1)}); if (_miniCamara != null){ }; }; } public function set limitesCamara(_arg1:Rectangle):void{ _limitesCamara = _arg1; } public function iniciaCamara(_arg1:DisplayObjectContainer, _arg2:Number=0, _arg3:Number=0, _arg4:Point=null){ _padre = _arg1; _limitesCamara = new Rectangle(0, 0, _arg2, _arg3); _camara = new VCam_AS3_Interactive(); _camara.width = VariablesGlobales.ANCHO_PANTALLA; _camara.height = VariablesGlobales.ALTO_PANTALLA; _padre.addChild(_camara); } private function manejarSeguimiento():void{ } private function manejarMouseUpMinicamara(_arg1:MouseEvent):void{ _miniCamara.stopDrag(); _arrastrandoMinicamara = false; } private function manejarMouseDownMinicamara(_arg1:MouseEvent):void{ var _local2:Number; var _local3:Number; var _local4:Rectangle; _local2 = -((_miniCamara.width - _miniMapa.width)); _local3 = -((_miniCamara.height - _miniMapa.height)); _local4 = new Rectangle(0, 0, _local2, _local3); _miniCamara.startDrag(false, _local4); _arrastrandoMinicamara = true; } public function actualizaAhora():void{ manejarSeguimiento(); manejarLimitesPantalla(); manejarControlMinimapa(); } } }//package
Section 168
//Camion (Camion) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Camion extends MovieClip { public function Camion(){ addFrameScript(0, frame1); } function frame1(){ gotoAndStop(1); } } }//package
Section 169
//CamionActor (CamionActor) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import General.*; public class CamionActor extends Actor { var rotacion_punto_muerto:Number; var bodyDef:b2BodyDef; public var motor_speed:Number; var posicion_y_almacen:Number; var lowerTranslationVal:Number;// = -0.0375 var circleDef:b2CircleDef; var trailer_wheel2_disfraz:Sprite; var trailer_wheel1_disfraz:Sprite; var cart:b2Body; var revoluteJointDef:b2RevoluteJointDef; private var _enBarro:Boolean;// = false var distanceJointDef:b2DistanceJointDef; var trailer:b2Body; var trailer_axle1:b2Body; var trailer_axle2:b2Body; var wheel2:b2Body; var boxDef:b2PolygonDef; var wheel1:b2Body; var posicion_almacen_carga:b2Vec2; var posicion_punto_muerto:b2Vec2; var axle1:b2Body; private var _retroceder:Boolean;// = false var tipo_camion:int;// = 0 var axle2:b2Body; var angulo_almacen:Number; var motor1:b2RevoluteJoint; var motor2:b2RevoluteJoint; var i:int; public var body_speed:b2Vec2; var trailer_joint:b2Body; var trailer_disfraz:Sprite; var prismaticJointDef:b2PrismaticJointDef; var wheel1_disfraz:Sprite; private var _vivo:Boolean;// = true var velocidad_x_maxima:Number;// = 5 var wheel2_disfraz:Sprite; var anclado:Boolean;// = false private var _avanzar:Boolean;// = false var upperTranslationVal_almacen:Number;// = 0.000625 var body:b2Body; var cart_joint:b2Body; var trailer_spring1:b2PrismaticJoint; var trailer_spring2:b2PrismaticJoint; var trailer_wheel1:b2Body; var trailer_wheel2:b2Body; var spring1:b2PrismaticJoint; var spring2:b2PrismaticJoint; var lowerTranslationVal_almacen:Number;// = -0.000375 public var max_torque:Number; var input:Input; private var _punto_muerto:Boolean;// = false public var almacen_carga:Boolean;// = true var trailer_motor1:b2RevoluteJoint; var trailer_motor2:b2RevoluteJoint; public var en_movimiento:Boolean;// = false var upperTranslationVal:Number;// = 0.0625 public function CamionActor(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int=1){ var _local4:Sprite; _vivo = true; _punto_muerto = false; _avanzar = false; _retroceder = false; _enBarro = false; en_movimiento = false; tipo_camion = 0; velocidad_x_maxima = 5; almacen_carga = true; posicion_almacen_carga = new b2Vec2(0, 0); anclado = false; lowerTranslationVal = -0.0375; upperTranslationVal = 0.0625; lowerTranslationVal_almacen = -0.000375; upperTranslationVal_almacen = 0.000625; tipo_camion = _arg3; bodyDef = new b2BodyDef(); bodyDef.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); almacen_carga = true; posicion_almacen_carga.Set(((_arg2.x + 15) / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); cart = VariablesGlobales.mundo.CreateBody(bodyDef); cart.SetBullet(true); boxDef = new b2PolygonDef(); boxDef.density = 2; boxDef.friction = 0.5; boxDef.restitution = 0.2; boxDef.filter.groupIndex = -1; bodyDef.userData = this; boxDef.isSensor = true; boxDef.SetAsBox(1.5, 0.3); cart.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(1.1, -0.3), (Math.PI / 3)); cart.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(-1.1, -0.3), (-(Math.PI) / 3)); cart.CreateShape(boxDef); cart.SetMassFromShapes(); boxDef.density = 1; boxDef.isSensor = false; boxDef.SetAsOrientedBox(2.3, 0.2, new b2Vec2(0.05, -0.2), 0); cart.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.5, 0.8, new b2Vec2(0.5, -1), 0); cart.CreateShape(boxDef); boxDef.friction = 0; boxDef.SetAsOrientedBox(0.3, 0.1, new b2Vec2(1.19, -1.62), (Math.PI / 7)); cart.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.38, 0.1, new b2Vec2(1.45, -1.2), (Math.PI / 2.3)); cart.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.5, 0.2, new b2Vec2(1.8, -0.65), (-(Math.PI) / 1.2)); cart.CreateShape(boxDef); boxDef.density = 1; boxDef.friction = 10; _local4 = new Camion(); _arg1.addChild(_local4); super(cart, _local4); axle1 = VariablesGlobales.mundo.CreateBody(bodyDef); boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec2(-((-1.1 - (0.6 * Math.cos((Math.PI / 3))))), -((0.3 - (0.6 * Math.sin((Math.PI / 3)))))), (Math.PI / 3)); axle1.CreateShape(boxDef); axle1.SetMassFromShapes(); prismaticJointDef = new b2PrismaticJointDef(); prismaticJointDef.Initialize(cart, axle1, axle1.GetWorldCenter(), new b2Vec2(-(Math.cos((Math.PI / 3))), -(Math.sin((Math.PI / 3))))); prismaticJointDef.lowerTranslation = lowerTranslationVal; prismaticJointDef.upperTranslation = upperTranslationVal; prismaticJointDef.enableLimit = true; prismaticJointDef.enableMotor = true; spring1 = (VariablesGlobales.mundo.CreateJoint(prismaticJointDef) as b2PrismaticJoint); axle2 = VariablesGlobales.mundo.CreateBody(bodyDef); boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec2(-((1.1 + (0.6 * Math.cos((-(Math.PI) / 3))))), -((0.3 + (0.6 * Math.sin((-(Math.PI) / 3)))))), (-(Math.PI) / 3)); axle2.CreateShape(boxDef); axle2.SetMassFromShapes(); prismaticJointDef.Initialize(cart, axle2, axle2.GetWorldCenter(), new b2Vec2(Math.cos((Math.PI / 3)), -(Math.sin((Math.PI / 3))))); spring2 = (VariablesGlobales.mundo.CreateJoint(prismaticJointDef) as b2PrismaticJoint); circleDef = new b2CircleDef(); circleDef.radius = 0.4; circleDef.density = 0.1; circleDef.friction = 5; circleDef.restitution = 0.2; circleDef.filter.groupIndex = -1; i = 0; while (i < 2) { bodyDef = new b2BodyDef(); if (i == 0){ bodyDef.position.Set((axle1.GetWorldCenter().x + (0.3 * Math.cos((Math.PI / 3)))), (axle1.GetWorldCenter().y + (0.3 * Math.sin((Math.PI / 3))))); } else { bodyDef.position.Set((axle2.GetWorldCenter().x - (0.3 * Math.cos((-(Math.PI) / 3)))), (axle2.GetWorldCenter().y - (0.3 * Math.sin((-(Math.PI) / 3))))); }; bodyDef.allowSleep = false; if (i == 0){ wheel1 = VariablesGlobales.mundo.CreateBody(bodyDef); wheel1_disfraz = new Rueda(); _arg1.addChild(wheel1_disfraz); } else { wheel2 = VariablesGlobales.mundo.CreateBody(bodyDef); wheel2_disfraz = new Rueda(); _arg1.addChild(wheel2_disfraz); }; ((i == 0)) ? wheel1 : wheel2.CreateShape(circleDef); ((i == 0)) ? wheel1 : wheel2.SetMassFromShapes(); i++; }; revoluteJointDef = new b2RevoluteJointDef(); revoluteJointDef.enableMotor = true; revoluteJointDef.Initialize(axle1, wheel1, wheel1.GetWorldCenter()); motor1 = (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); revoluteJointDef.Initialize(axle2, wheel2, wheel2.GetWorldCenter()); motor2 = (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); switch (tipo_camion){ case 2: CrearTrailerEnano(_arg1, _arg2); CrearUnionTrailer(_arg2); break; case 3: CrearTrailerMediano(_arg1, _arg2); CrearUnionTrailer(_arg2); break; case 4: CrearTrailerGrande(_arg1, _arg2); CrearUnionTrailer(_arg2); break; }; input = new Input(Sprite(_arg1)); _arg1.stage.focus = _arg1.parent; } public function get punto_muerto():Boolean{ return (_punto_muerto); } public function set retroceder(_arg1:Boolean):void{ _retroceder = _arg1; } private function CrearTrailerEnano(_arg1:DisplayObjectContainer, _arg2:Point):void{ bodyDef = new b2BodyDef(); bodyDef.position.Set(((_arg2.x - 110) / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); trailer = VariablesGlobales.mundo.CreateBody(bodyDef); trailer.SetBullet(true); boxDef = new b2PolygonDef(); boxDef.density = 2; boxDef.friction = 0.5; boxDef.restitution = 0.2; boxDef.filter.groupIndex = -1; boxDef.isSensor = true; boxDef.SetAsBox(1, 0.3); trailer.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(0, -0.3), (Math.PI / 3)); trailer.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(0, -0.3), (-(Math.PI) / 3)); trailer.CreateShape(boxDef); trailer.SetMassFromShapes(); boxDef.density = 1; boxDef.isSensor = false; boxDef.SetAsOrientedBox(1, 0.2, new b2Vec2(0.05, -0.2), 0); trailer.CreateShape(boxDef); boxDef.density = 1; boxDef.friction = 10; trailer_disfraz = new Remolque1(); _arg1.addChild(trailer_disfraz); prismaticJointDef = new b2PrismaticJointDef(); prismaticJointDef.lowerTranslation = lowerTranslationVal; prismaticJointDef.upperTranslation = upperTranslationVal; prismaticJointDef.enableLimit = true; prismaticJointDef.enableMotor = true; trailer_axle2 = VariablesGlobales.mundo.CreateBody(bodyDef); boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec2(-((0 + (0.6 * Math.cos((-(Math.PI) / 3))))), -((0.3 + (0.6 * Math.sin((-(Math.PI) / 3)))))), (-(Math.PI) / 3)); trailer_axle2.CreateShape(boxDef); trailer_axle2.SetMassFromShapes(); prismaticJointDef.Initialize(trailer, trailer_axle2, trailer_axle2.GetWorldCenter(), new b2Vec2(Math.cos((Math.PI / 3)), -(Math.sin((Math.PI / 3))))); trailer_spring2 = (VariablesGlobales.mundo.CreateJoint(prismaticJointDef) as b2PrismaticJoint); circleDef = new b2CircleDef(); circleDef.radius = 0.4; circleDef.density = 0.1; circleDef.friction = 5; circleDef.restitution = 0.2; circleDef.filter.groupIndex = -1; bodyDef = new b2BodyDef(); bodyDef.position.Set((trailer_axle2.GetWorldCenter().x - (0.3 * Math.cos((-(Math.PI) / 3)))), (trailer_axle2.GetWorldCenter().y - (0.3 * Math.sin((-(Math.PI) / 3))))); bodyDef.allowSleep = false; trailer_wheel2 = VariablesGlobales.mundo.CreateBody(bodyDef); trailer_wheel2_disfraz = new Rueda(); _arg1.addChild(trailer_wheel2_disfraz); trailer_wheel2.CreateShape(circleDef); trailer_wheel2.SetMassFromShapes(); revoluteJointDef = new b2RevoluteJointDef(); revoluteJointDef.enableMotor = true; revoluteJointDef.Initialize(trailer_axle2, trailer_wheel2, trailer_wheel2.GetWorldCenter()); trailer_motor2 = (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); } private function CrearTrailerMediano(_arg1:DisplayObjectContainer, _arg2:Point):void{ bodyDef = new b2BodyDef(); bodyDef.position.Set(((_arg2.x - 120) / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); trailer = VariablesGlobales.mundo.CreateBody(bodyDef); trailer.SetBullet(true); boxDef = new b2PolygonDef(); boxDef.density = 2; boxDef.friction = 0.5; boxDef.restitution = 0.2; boxDef.filter.groupIndex = -1; boxDef.isSensor = true; boxDef.SetAsBox(1.5, 0.3); trailer.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(0.5, -0.3), (Math.PI / 3)); trailer.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(-0.5, -0.3), (-(Math.PI) / 3)); trailer.CreateShape(boxDef); trailer.SetMassFromShapes(); boxDef.density = 1; boxDef.isSensor = false; boxDef.SetAsOrientedBox(1.5, 0.2, new b2Vec2(0.05, -0.2), 0); trailer.CreateShape(boxDef); boxDef.density = 1; boxDef.friction = 10; trailer_disfraz = new Remolque2(); _arg1.addChild(trailer_disfraz); trailer_axle1 = VariablesGlobales.mundo.CreateBody(bodyDef); boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec2(-((-0.5 - (0.6 * Math.cos((Math.PI / 3))))), -((0.3 - (0.6 * Math.sin((Math.PI / 3)))))), (Math.PI / 3)); trailer_axle1.CreateShape(boxDef); trailer_axle1.SetMassFromShapes(); prismaticJointDef = new b2PrismaticJointDef(); prismaticJointDef.Initialize(trailer, trailer_axle1, trailer_axle1.GetWorldCenter(), new b2Vec2(-(Math.cos((Math.PI / 3))), -(Math.sin((Math.PI / 3))))); prismaticJointDef.lowerTranslation = lowerTranslationVal; prismaticJointDef.upperTranslation = upperTranslationVal; prismaticJointDef.enableLimit = true; prismaticJointDef.enableMotor = true; trailer_spring1 = (VariablesGlobales.mundo.CreateJoint(prismaticJointDef) as b2PrismaticJoint); trailer_axle2 = VariablesGlobales.mundo.CreateBody(bodyDef); boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec2(-((0.5 + (0.6 * Math.cos((-(Math.PI) / 3))))), -((0.3 + (0.6 * Math.sin((-(Math.PI) / 3)))))), (-(Math.PI) / 3)); trailer_axle2.CreateShape(boxDef); trailer_axle2.SetMassFromShapes(); prismaticJointDef.Initialize(trailer, trailer_axle2, trailer_axle2.GetWorldCenter(), new b2Vec2(Math.cos((Math.PI / 3)), -(Math.sin((Math.PI / 3))))); trailer_spring2 = (VariablesGlobales.mundo.CreateJoint(prismaticJointDef) as b2PrismaticJoint); circleDef = new b2CircleDef(); circleDef.radius = 0.4; circleDef.density = 0.1; circleDef.friction = 5; circleDef.restitution = 0.2; circleDef.filter.groupIndex = -1; i = 0; while (i < 2) { bodyDef = new b2BodyDef(); if (i == 0){ bodyDef.position.Set((trailer_axle1.GetWorldCenter().x + (0.3 * Math.cos((Math.PI / 3)))), (trailer_axle1.GetWorldCenter().y + (0.3 * Math.sin((Math.PI / 3))))); } else { bodyDef.position.Set((trailer_axle2.GetWorldCenter().x - (0.3 * Math.cos((-(Math.PI) / 3)))), (trailer_axle2.GetWorldCenter().y - (0.3 * Math.sin((-(Math.PI) / 3))))); }; bodyDef.allowSleep = false; if (i == 0){ trailer_wheel1 = VariablesGlobales.mundo.CreateBody(bodyDef); trailer_wheel1_disfraz = new Rueda(); _arg1.addChild(trailer_wheel1_disfraz); } else { trailer_wheel2 = VariablesGlobales.mundo.CreateBody(bodyDef); trailer_wheel2_disfraz = new Rueda(); _arg1.addChild(trailer_wheel2_disfraz); }; ((i == 0)) ? trailer_wheel1 : trailer_wheel2.CreateShape(circleDef); ((i == 0)) ? trailer_wheel1 : trailer_wheel2.SetMassFromShapes(); i++; }; revoluteJointDef = new b2RevoluteJointDef(); revoluteJointDef.enableMotor = true; revoluteJointDef.Initialize(trailer_axle1, trailer_wheel1, trailer_wheel1.GetWorldCenter()); trailer_motor1 = (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); revoluteJointDef.Initialize(trailer_axle2, trailer_wheel2, trailer_wheel2.GetWorldCenter()); trailer_motor2 = (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); } override public function destruir():void{ if (wheel1 != null){ wheel1_disfraz.parent.removeChild(wheel1_disfraz); }; if (wheel2 != null){ wheel2_disfraz.parent.removeChild(wheel2_disfraz); }; if (trailer != null){ trailer_disfraz.parent.removeChild(trailer_disfraz); }; if (trailer_wheel1 != null){ trailer_wheel1_disfraz.parent.removeChild(trailer_wheel1_disfraz); }; if (trailer_wheel2 != null){ trailer_wheel2_disfraz.parent.removeChild(trailer_wheel2_disfraz); }; super.destruir(); } public function traerAlFrente(){ if (disfraz != null){ disfraz.parent.setChildIndex(disfraz, (disfraz.parent.numChildren - 1)); }; if (wheel1 != null){ wheel1_disfraz.parent.setChildIndex(wheel1_disfraz, (wheel1_disfraz.parent.numChildren - 1)); }; if (wheel2 != null){ wheel2_disfraz.parent.setChildIndex(wheel2_disfraz, (wheel2_disfraz.parent.numChildren - 1)); }; if (trailer != null){ trailer_disfraz.parent.setChildIndex(trailer_disfraz, (trailer_disfraz.parent.numChildren - 1)); }; if (trailer_wheel1 != null){ trailer_wheel1_disfraz.parent.setChildIndex(trailer_wheel1_disfraz, (trailer_wheel1_disfraz.parent.numChildren - 1)); }; if (trailer_wheel2 != null){ trailer_wheel2_disfraz.parent.setChildIndex(trailer_wheel2_disfraz, (trailer_wheel2_disfraz.parent.numChildren - 1)); }; } private function ActualizarAparienciaGraficos():void{ if (wheel1 != null){ wheel1_disfraz.x = (wheel1.GetPosition().x * VariablesGlobales.RATIO); wheel1_disfraz.y = (wheel1.GetPosition().y * VariablesGlobales.RATIO); wheel1_disfraz.rotation = (((wheel1.GetAngle() * 180) / Math.PI) % 360); }; if (wheel2 != null){ wheel2_disfraz.x = (wheel2.GetPosition().x * VariablesGlobales.RATIO); wheel2_disfraz.y = (wheel2.GetPosition().y * VariablesGlobales.RATIO); wheel2_disfraz.rotation = (((wheel2.GetAngle() * 180) / Math.PI) % 360); }; if (trailer != null){ trailer_disfraz.x = (trailer.GetPosition().x * VariablesGlobales.RATIO); trailer_disfraz.y = (trailer.GetPosition().y * VariablesGlobales.RATIO); trailer_disfraz.rotation = (((trailer.GetAngle() * 180) / Math.PI) % 360); }; if (trailer_wheel1 != null){ trailer_wheel1_disfraz.x = (trailer_wheel1.GetPosition().x * VariablesGlobales.RATIO); trailer_wheel1_disfraz.y = (trailer_wheel1.GetPosition().y * VariablesGlobales.RATIO); trailer_wheel1_disfraz.rotation = (((trailer_wheel1.GetAngle() * 180) / Math.PI) % 360); }; if (trailer_wheel2 != null){ trailer_wheel2_disfraz.x = (trailer_wheel2.GetPosition().x * VariablesGlobales.RATIO); trailer_wheel2_disfraz.y = (trailer_wheel2.GetPosition().y * VariablesGlobales.RATIO); trailer_wheel2_disfraz.rotation = (((trailer_wheel2.GetAngle() * 180) / Math.PI) % 360); }; } public function get enBarro():Boolean{ return (_enBarro); } override protected function actualizacionEspecificaHijo():void{ var _local1:Number; ActualizarAparienciaGraficos(); if (cart.GetPosition().x <= posicion_almacen_carga.x){ if (almacen_carga == false){ VariablesGlobales.retorno_almacen = (VariablesGlobales.retorno_almacen + 1); }; if (!anclado){ posicion_y_almacen = cart.GetPosition().y; angulo_almacen = cart.GetAngle(); }; almacen_carga = true; } else { almacen_carga = false; anclado = false; }; _local1 = 1; _local1 = 1; motor_speed = (((15 / _local1) * Math.PI) * (avanzar) ? 1 : (retroceder) ? -1 : 0); max_torque = (((avanzar) || (retroceder))) ? (17 / _local1) : 0.5; body_speed = cart.GetLinearVelocity().Copy(); if (enBarro){ motor_speed = (motor_speed / 15); max_torque = (max_torque / 15); }; if (((avanzar) || (retroceder))){ en_movimiento = true; if (VariablesGlobales.tiempo_acelerador == 0){ VariablesGlobales.tiempo_acelerador = getTimer(); }; VariablesGlobales.tiempo_quieto = 0; } else { en_movimiento = false; VariablesGlobales.tiempo_acelerador = 0; if (VariablesGlobales.tiempo_quieto == 0){ VariablesGlobales.tiempo_quieto = getTimer(); }; }; if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ if (VariablesGlobales.SoundMan.isSoundPaused("motor")){ VariablesGlobales.SoundMan.playSound("motor", 1, 0, 99); }; } else { if (!VariablesGlobales.SoundMan.isSoundPaused("motor")){ VariablesGlobales.SoundMan.stopSound("motor"); }; }; motor1.SetMotorSpeed(motor_speed); motor1.SetMaxMotorTorque(max_torque); motor2.SetMotorSpeed(motor_speed); motor2.SetMaxMotorTorque(max_torque); if (almacen_carga){ spring1.SetLimits(lowerTranslationVal_almacen, upperTranslationVal_almacen); spring2.SetLimits(lowerTranslationVal_almacen, upperTranslationVal_almacen); } else { spring1.SetLimits(lowerTranslationVal, upperTranslationVal); spring2.SetLimits(lowerTranslationVal, upperTranslationVal); }; spring1.SetMaxMotorForce((15 + Math.abs((800 * Math.pow(spring1.GetJointTranslation(), 2))))); spring1.SetMotorSpeed(((spring1.GetMotorSpeed() - (10 * spring1.GetJointTranslation())) * 0.4)); spring2.SetMaxMotorForce((10 + Math.abs((800 * Math.pow(spring2.GetJointTranslation(), 2))))); spring2.SetMotorSpeed((-4 * Math.pow(spring2.GetJointTranslation(), 1))); if ((((tipo_camion == 3)) || ((tipo_camion == 4)))){ trailer_spring1.SetMaxMotorForce((15 + Math.abs((800 * Math.pow(trailer_spring1.GetJointTranslation(), 2))))); trailer_spring1.SetMotorSpeed(((trailer_spring1.GetMotorSpeed() - (10 * trailer_spring1.GetJointTranslation())) * 0.4)); trailer_spring2.SetMaxMotorForce((10 + Math.abs((800 * Math.pow(trailer_spring2.GetJointTranslation(), 2))))); trailer_spring2.SetMotorSpeed((-4 * Math.pow(trailer_spring2.GetJointTranslation(), 1))); }; super.actualizacionEspecificaHijo(); if (cart.GetLinearVelocity().x > velocidad_x_maxima){ cart.SetLinearVelocity(new b2Vec2(velocidad_x_maxima, cart.GetLinearVelocity().y)); } else { if (cart.GetLinearVelocity().x < -(velocidad_x_maxima)){ cart.SetLinearVelocity(new b2Vec2(-(velocidad_x_maxima), cart.GetLinearVelocity().y)); }; }; if (((punto_muerto) || (VariablesGlobales.motor.pausarMundo))){ if (cart){ cart.SetLinearVelocity(new b2Vec2(0, 0)); }; }; } private function CrearUnionTrailer(_arg1:Point):void{ revoluteJointDef = new b2RevoluteJointDef(); revoluteJointDef.Initialize(cart, trailer, new b2Vec2((-2.5 + (_arg1.x / VariablesGlobales.RATIO)), (0 + (_arg1.y / VariablesGlobales.RATIO)))); revoluteJointDef.collideConnected = true; (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); } public function set avanzar(_arg1:Boolean):void{ _avanzar = _arg1; } public function get retroceder():Boolean{ return (_retroceder); } override protected function gestionarFueraDeLimites():void{ super.gestionarFueraDeLimites(); } private function CrearTrailerGrande(_arg1:DisplayObjectContainer, _arg2:Point):void{ bodyDef = new b2BodyDef(); bodyDef.position.Set(((_arg2.x - 150) / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); trailer = VariablesGlobales.mundo.CreateBody(bodyDef); trailer.SetBullet(true); boxDef = new b2PolygonDef(); boxDef.density = 2; boxDef.friction = 0.5; boxDef.restitution = 0.2; boxDef.filter.groupIndex = -1; boxDef.isSensor = true; boxDef.SetAsBox(1.5, 0.3); trailer.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(1.1, -0.3), (Math.PI / 3)); trailer.CreateShape(boxDef); boxDef.SetAsOrientedBox(0.4, 0.15, new b2Vec2(-1.1, -0.3), (-(Math.PI) / 3)); trailer.CreateShape(boxDef); trailer.SetMassFromShapes(); boxDef.density = 1; boxDef.isSensor = false; boxDef.SetAsOrientedBox(2.3, 0.2, new b2Vec2(0.05, -0.2), 0); trailer.CreateShape(boxDef); boxDef.density = 1; boxDef.friction = 10; trailer_disfraz = new Remolque3(); _arg1.addChild(trailer_disfraz); trailer_axle1 = VariablesGlobales.mundo.CreateBody(bodyDef); boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec2(-((-1.1 - (0.6 * Math.cos((Math.PI / 3))))), -((0.3 - (0.6 * Math.sin((Math.PI / 3)))))), (Math.PI / 3)); trailer_axle1.CreateShape(boxDef); trailer_axle1.SetMassFromShapes(); prismaticJointDef = new b2PrismaticJointDef(); prismaticJointDef.Initialize(trailer, trailer_axle1, trailer_axle1.GetWorldCenter(), new b2Vec2(-(Math.cos((Math.PI / 3))), -(Math.sin((Math.PI / 3))))); prismaticJointDef.lowerTranslation = lowerTranslationVal; prismaticJointDef.upperTranslation = upperTranslationVal; prismaticJointDef.enableLimit = true; prismaticJointDef.enableMotor = true; trailer_spring1 = (VariablesGlobales.mundo.CreateJoint(prismaticJointDef) as b2PrismaticJoint); trailer_axle2 = VariablesGlobales.mundo.CreateBody(bodyDef); boxDef.SetAsOrientedBox(0.4, 0.1, new b2Vec2(-((1.1 + (0.6 * Math.cos((-(Math.PI) / 3))))), -((0.3 + (0.6 * Math.sin((-(Math.PI) / 3)))))), (-(Math.PI) / 3)); trailer_axle2.CreateShape(boxDef); trailer_axle2.SetMassFromShapes(); prismaticJointDef.Initialize(trailer, trailer_axle2, trailer_axle2.GetWorldCenter(), new b2Vec2(Math.cos((Math.PI / 3)), -(Math.sin((Math.PI / 3))))); trailer_spring2 = (VariablesGlobales.mundo.CreateJoint(prismaticJointDef) as b2PrismaticJoint); circleDef = new b2CircleDef(); circleDef.radius = 0.4; circleDef.density = 0.1; circleDef.friction = 5; circleDef.restitution = 0.2; circleDef.filter.groupIndex = -1; i = 0; while (i < 2) { bodyDef = new b2BodyDef(); if (i == 0){ bodyDef.position.Set((trailer_axle1.GetWorldCenter().x + (0.3 * Math.cos((Math.PI / 3)))), (trailer_axle1.GetWorldCenter().y + (0.3 * Math.sin((Math.PI / 3))))); } else { bodyDef.position.Set((trailer_axle2.GetWorldCenter().x - (0.3 * Math.cos((-(Math.PI) / 3)))), (trailer_axle2.GetWorldCenter().y - (0.3 * Math.sin((-(Math.PI) / 3))))); }; bodyDef.allowSleep = false; if (i == 0){ trailer_wheel1 = VariablesGlobales.mundo.CreateBody(bodyDef); trailer_wheel1_disfraz = new Rueda(); _arg1.addChild(trailer_wheel1_disfraz); } else { trailer_wheel2 = VariablesGlobales.mundo.CreateBody(bodyDef); trailer_wheel2_disfraz = new Rueda(); _arg1.addChild(trailer_wheel2_disfraz); }; ((i == 0)) ? trailer_wheel1 : trailer_wheel2.CreateShape(circleDef); ((i == 0)) ? trailer_wheel1 : trailer_wheel2.SetMassFromShapes(); i++; }; revoluteJointDef = new b2RevoluteJointDef(); revoluteJointDef.enableMotor = true; revoluteJointDef.Initialize(trailer_axle1, trailer_wheel1, trailer_wheel1.GetWorldCenter()); trailer_motor1 = (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); revoluteJointDef.Initialize(trailer_axle2, trailer_wheel2, trailer_wheel2.GetWorldCenter()); trailer_motor2 = (VariablesGlobales.mundo.CreateJoint(revoluteJointDef) as b2RevoluteJoint); } public function set enBarro(_arg1:Boolean):void{ _enBarro = _arg1; } public function get avanzar():Boolean{ return (_avanzar); } public function set punto_muerto(_arg1:Boolean):void{ if (((_arg1) && ((_punto_muerto == false)))){ if (cart){ posicion_punto_muerto = cart.GetPosition(); rotacion_punto_muerto = cart.GetAngle(); }; }; _punto_muerto = _arg1; } } }//package
Section 170
//Cangrejo (Cangrejo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Cangrejo extends MovieClip { public function Cangrejo(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 171
//catalogoFondos (catalogoFondos) package { import flash.display.*; public dynamic class catalogoFondos extends MovieClip { } }//package
Section 172
//catalogoTiles (catalogoTiles) package { import flash.display.*; public dynamic class catalogoTiles extends MovieClip { } }//package
Section 173
//Cebra (Cebra) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Cebra extends MovieClip { public function Cebra(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 174
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 175
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 176
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 177
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 178
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 179
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 180
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 181
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 182
//claxon (claxon) package { import flash.media.*; public dynamic class claxon extends Sound { } }//package
Section 183
//click (click) package { import flash.media.*; public dynamic class click extends Sound { } }//package
Section 184
//Comida (Comida) package { import flash.display.*; public dynamic class Comida extends MovieClip { } }//package
Section 185
//Creditos (Creditos) package { import flash.display.*; import flash.events.*; public class Creditos extends MovieClip { public var salir:SimpleButton; public var main_class:MovieClip; public function Creditos(){ salir.addEventListener(MouseEvent.CLICK, on_button_clicked); } public function on_button_clicked(_arg1:MouseEvent){ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.currentTarget.name){ case "salir": main_class.cierra_pantalla(this); break; default: trace((_arg1.target.name + " UNDEFINED")); break; }; } } }//package
Section 186
//cuervos (cuervos) package { import flash.media.*; public dynamic class cuervos extends Sound { } }//package
Section 187
//DecoracionActor (DecoracionActor) package { import flash.display.*; import flash.geom.*; public class DecoracionActor extends Actor { public function DecoracionActor(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:Point){ _arg2.x = _arg3.x; _arg2.y = _arg3.y; _arg1.addChild(_arg2); super(null, _arg2); } } }//package
Section 188
//Delfin (Delfin) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Delfin extends MovieClip { public function Delfin(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 189
//dialogosEnJuego (dialogosEnJuego) package { import flash.display.*; public dynamic class dialogosEnJuego extends MovieClip { public var cerrar_dialogo:SimpleButton; } }//package
Section 190
//dolphin_humo (dolphin_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class dolphin_humo extends MovieClip { public function dolphin_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 191
//Editor (Editor) package { import fl.controls.*; import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import fl.data.*; import flash.system.*; public class Editor extends EventDispatcher { private var listaComunes:TileList; private var posicionActual:Point; private var _menuCatalogoTiles:menuCatalogoTiles; private var _padre:DisplayObjectContainer; private var marcoTile:Sprite; private var _timerLoading:Timer; private var cursorTile:MovieClip; private var _interfaz:DisplayObjectContainer; private var _tileActualI:int;// = 1 private var _tileActualX:int;// = 0 private var _tileActualY:int;// = 0 private var _borrandoTiles:Boolean;// = false private var _pintandoTiles:Boolean;// = false private var _panelErrorEditor:panelErrorEditor; private var listaDecoracion:TileList; private var _tileActualMC:MovieClip; private var _mapaAncho:int; private var _interfazContenedor:Sprite; private var _menuCargar:menuCargar; private var _mapaAlto:int; private var _panelAyuda:panelAyuda; private var _menuGuardar:menuGuardar; private var _panelBorrarTodo:panelBorrarTodo; private var _bombasDisponibles:Array; private var _lienzoMatrizVisible:Boolean;// = true private var numeroBombas:int; private var _turnosNivel:int;// = 0 private var _posicionPrincesa:Point; private var marcoTileGoma:Sprite; private var _lienzo:Sprite; private var _posicionCamara:Point; private var _temaNivel:int;// = 1 private var numeroAliens:int; private var listaSolidos:TileList; private var _posicionMeta:Point; private var _juegoContenedor:Sprite; private var _matriz:Array; private var _tileLado:int; private var _matrizGrafica:Array; private var _panelSubirNivel:panelSubirNivel; public function Editor(){ _tileLado = VariablesGlobales.LADO_TILE; _mapaAncho = VariablesGlobales.MAX_ANCHO_TILE; _mapaAlto = VariablesGlobales.MAX_ALTO_TILE; _tileActualI = 1; _tileActualX = 0; _tileActualY = 0; _lienzoMatrizVisible = true; _pintandoTiles = false; _borrandoTiles = false; _temaNivel = 1; _turnosNivel = 0; _bombasDisponibles = []; _timerLoading = new Timer(3); super(); } public function actualiza(){ _tileActualX = uint((_lienzo.mouseX / _tileLado)); if (_tileActualX > (_mapaAncho - 1)){ _tileActualX = (_mapaAncho - 1); }; _tileActualY = uint((_lienzo.mouseY / _tileLado)); if (_tileActualY > (_mapaAlto - 1)){ _tileActualY = (_mapaAlto - 1); }; if ((((_tileActualI > 0)) && (!((_borrandoTiles == true))))){ cursorTile.visible = true; } else { cursorTile.visible = false; }; cursorTile.x = (_tileActualX * _tileLado); cursorTile.y = (_tileActualY * _tileLado); _lienzo.setChildIndex(cursorTile, (_lienzo.numChildren - 1)); marcoTile.x = (_tileActualX * _tileLado); marcoTile.y = (_tileActualY * _tileLado); _lienzo.setChildIndex(marcoTile, (_lienzo.numChildren - 1)); marcoTileGoma.x = (_tileActualX * _tileLado); marcoTileGoma.y = (_tileActualY * _tileLado); _lienzo.setChildIndex(marcoTileGoma, (_lienzo.numChildren - 1)); rellenarTileActual(); } private function controlarMostrarMatriz():void{ _lienzoMatrizVisible = !(_lienzoMatrizVisible); if (_lienzoMatrizVisible == true){ _menuCatalogoTiles.boton_matriz2.gotoAndStop(2); pintarGridEditor(); } else { _menuCatalogoTiles.boton_matriz2.gotoAndStop(1); borrarGridEditor(); }; } private function parsearCadenaNivel(_arg1:String):Boolean{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:Array; var _local6:int; var _local7:int; _local2 = _arg1.split(";"); _local3 = _local2[0].split(","); _mapaAncho = _local3[0]; _mapaAlto = _local3[1]; _temaNivel = _local3[2]; _turnosNivel = _local3[3]; _menuCatalogoTiles.turnos.value = _turnosNivel; _menuCatalogoTiles.fondo_txt.text = ("" + _temaNivel); _bombasDisponibles = [false, false, false, false, false, false, false, false]; if (_local3[4] == 1){ _bombasDisponibles[0] = true; }; if (_local3[5] == 1){ _bombasDisponibles[1] = true; }; if (_local3[6] == 1){ _bombasDisponibles[2] = true; }; if (_local3[7] == 1){ _bombasDisponibles[3] = true; }; if (_local3[8] == 1){ _bombasDisponibles[4] = true; }; if (_local3[9] == 1){ _bombasDisponibles[5] = true; }; if (_local3[10] == 1){ _bombasDisponibles[6] = true; }; if (_local3[11] == 1){ _bombasDisponibles[7] = true; }; actualizaEstadoBombas(); _local4 = _local2[1].split("|"); _local5 = []; _matriz = new Array(_mapaAncho); _local6 = 0; while (_local6 < _local4.length) { _local5 = _local4[_local6].split(","); _matriz[_local6] = new Array(_local5.length); _local7 = 0; while (_local7 < _local5.length) { if (_local5[_local7] == ""){ _local5[_local7] = 0; }; _matriz[_local6][_local7] = _local5[_local7]; _local7++; }; _local6++; }; return (true); } private function limpiarSeleccionListas():void{ listaComunes.clearSelection(); listaSolidos.clearSelection(); listaDecoracion.clearSelection(); } private function borrarContenidoTileActual():void{ _matriz[_tileActualX][_tileActualY] = 0; if (_matrizGrafica[_tileActualX][_tileActualY] != null){ _lienzo.removeChild(_matrizGrafica[_tileActualX][_tileActualY]); _matrizGrafica[_tileActualX][_tileActualY] = null; }; VariablesGlobales.camara.miniMapaDatos = _matriz; } private function subirNivel():void{ VariablesGlobales.AbreWeb(VariablesGlobales.WEB_NIVELES); } private function iniciaValores():void{ _temaNivel = 1; _tileActualI = 0; _pintandoTiles = false; _borrandoTiles = false; _posicionMeta = null; _posicionPrincesa = null; _posicionCamara = null; _turnosNivel = 0; _bombasDisponibles = [true, true, true, true, true, true, true, true]; crearMatriz(); } private function manejarCambioLista(_arg1:Event):void{ _tileActualI = (_arg1.target.selectedItem.data + 1); cursorTile.gotoAndStop(_tileActualI); controlarGomaTiles(false); limpiarSeleccionListas(); } public function finalizaEditor(){ eliminarGridEditor(); finalizaMenus(); _padre.removeChild(_juegoContenedor); _juegoContenedor.removeChild(_lienzo); _padre.removeChild(_interfazContenedor); _interfazContenedor.removeChild(_interfaz); } private function crearMatriz():void{ var _local1:int; var _local2:int; _matriz = new Array(_mapaAncho); _matrizGrafica = new Array(_mapaAncho); _local1 = 0; while (_local1 < _matriz.length) { _matriz[_local1] = new Array(_mapaAlto); _matrizGrafica[_local1] = new Array(_mapaAlto); _local2 = 0; while (_local2 < _matriz[_local1].length) { _matriz[_local1][_local2] = 0; _matrizGrafica[_local1][_local2] = null; _local2++; }; _local1++; }; _posicionMeta = null; _posicionPrincesa = null; _posicionCamara = null; } private function borrarGridEditor():void{ _lienzo.graphics.clear(); } private function crearGridEditor():void{ agregarLienzoMouse(); pintarGridEditor(); _lienzoMatrizVisible = true; if (cursorTile != null){ _lienzo.removeChild(cursorTile); }; cursorTile = new catalogoTiles(); _lienzo.addChild(cursorTile); if (marcoTile != null){ _lienzo.removeChild(marcoTile); }; marcoTile = new Sprite(); marcoTile.graphics.lineStyle(1, 0xFF0000, 1, false); marcoTile.graphics.drawRect(0, 0, _tileLado, _tileLado); _lienzo.addChild(marcoTile); marcoTileGoma = new Sprite(); marcoTileGoma.graphics.lineStyle(2, 0xFF0000, 1, false); marcoTileGoma.graphics.beginFill(0xFF0000, 0.5); marcoTileGoma.graphics.drawRect(0, 0, _tileLado, _tileLado); marcoTileGoma.visible = _borrandoTiles; _lienzo.addChild(marcoTileGoma); posicionActual = new Point(0, 0); _lienzo.addEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownLienzo); _lienzo.addEventListener(MouseEvent.MOUSE_UP, manejarMouseUpLienzo); _lienzo.addEventListener(MouseEvent.CLICK, manejarMouseClickLienzo); _lienzo.addEventListener(MouseEvent.MOUSE_OUT, manejarMouseOutLienzo); _pintandoTiles = false; } private function manejarMouseDownLienzo(_arg1:MouseEvent):void{ _pintandoTiles = true; rellenarTileActual(); } private function mostrarPanelSubirNivel():void{ _panelSubirNivel.subido.visible = false; _panelSubirNivel.visible = !(_panelSubirNivel.visible); if (_panelSubirNivel.visible == true){ _panelSubirNivel.cadena_nivel.text = _menuGuardar.nivel_guardar.text; _panelSubirNivel.nombre_nivel.text = ""; _panelSubirNivel.nombre_autor.text = ""; _panelSubirNivel.comentarios.text = ""; }; } private function pintarGridEditor():void{ var _local1:int; _local1 = 0; _lienzo.graphics.lineStyle(1, 0, 1, false); _lienzo.graphics.beginFill(0xCCCCCC, 0.1); _lienzo.graphics.drawRect(0, 0, (_mapaAncho * _tileLado), (_mapaAlto * _tileLado)); _local1 = 1; while (_local1 <= _mapaAlto) { _lienzo.graphics.moveTo(0, (_local1 * _tileLado)); _lienzo.graphics.lineTo((_mapaAncho * _tileLado), (_local1 * _tileLado)); _local1++; }; _local1 = 1; while (_local1 <= _mapaAncho) { _lienzo.graphics.moveTo((_local1 * _tileLado), 0); _lienzo.graphics.lineTo((_local1 * _tileLado), (_mapaAlto * _tileLado)); _local1++; }; } private function mostrarPanelError():void{ _panelErrorEditor.visible = !(_panelErrorEditor.visible); } private function manejarClickBomba(_arg1:MouseEvent):void{ switch (_arg1.currentTarget.name){ case "bomba_01": _bombasDisponibles[0] = !(_bombasDisponibles[0]); break; case "bomba_02": _bombasDisponibles[1] = !(_bombasDisponibles[1]); break; case "bomba_03": _bombasDisponibles[2] = !(_bombasDisponibles[2]); break; case "bomba_04": _bombasDisponibles[3] = !(_bombasDisponibles[3]); break; case "bomba_05": _bombasDisponibles[4] = !(_bombasDisponibles[4]); break; case "bomba_06": _bombasDisponibles[5] = !(_bombasDisponibles[5]); break; case "bomba_07": _bombasDisponibles[6] = !(_bombasDisponibles[6]); break; case "bomba_08": _bombasDisponibles[7] = !(_bombasDisponibles[7]); break; }; actualizaEstadoBombas(); } private function manejarMouseClickLienzo(_arg1:MouseEvent):void{ } private function pintarTilesCargados():void{ var _local1:int; var _local2:int; _pintandoTiles = true; _local1 = 0; while (_local1 < _matriz.length) { _tileActualX = _local1; _local2 = 0; while (_local2 < _matriz[_local1].length) { _tileActualY = _local2; _tileActualI = _matriz[_local1][_local2]; if (_tileActualI != 0){ _tileActualMC = new catalogoTiles(); _tileActualMC.gotoAndStop(_tileActualI); copiarTileAGrid(); }; _local2++; }; _local1++; }; _pintandoTiles = false; _tileActualI = 0; _tileActualX = 0; _tileActualY = 0; } private function iniciaBotonesBombas():void{ _menuCatalogoTiles.bomba_01.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_02.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_03.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_04.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_04.visible = false; _menuCatalogoTiles.bomba_05.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_06.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_07.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_07.visible = false; _menuCatalogoTiles.bomba_08.addEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_08.visible = false; actualizaEstadoBombas(); } private function rellenarLista(_arg1:TileList, _arg2:int=1, _arg3:int=99999):void{ var _local4:DataProvider; var _local5:MovieClip; var _local6:uint; var _local7:uint; var _local8:MovieClip; _local4 = new DataProvider(); _local5 = new catalogoTiles(); _local6 = _local5.totalFrames; if (_local6 < _arg3){ _arg3 = _local6; }; _local7 = _arg2; while (_local7 < _arg3) { _local5 = new catalogoTiles(); _local5.gotoAndStop((_local7 + 1)); if ((((((((_local5.width > 0)) && ((_local5.height > 0)))) && ((_local5.currentFrame >= _arg2)))) && ((_local5.currentFrame <= _arg3)))){ _local8 = _local5; _local8.y = 45; trace(_local8.height); _local4.addItem({source:_local8, data:_local7, scaleContent:true}); }; _local7++; }; _arg1.direction = ScrollBarDirection.VERTICAL; _arg1.useHandCursor = true; _arg1.opaqueBackground = null; _arg1.addEventListener(Event.CHANGE, manejarCambioLista); _arg1.allowMultipleSelection = false; _arg1.columnWidth = 30; _arg1.rowHeight = 30; _arg1.dataProvider = _local4; _arg1.columnCount = 4; _arg1.rowCount = 8; _arg1.x = 7; _arg1.y = 32; _arg1.height = 240; _menuCatalogoTiles.addChild(_arg1); _arg1.visible = false; } private function ordenarTiles():void{ var _local1:LogicaTiles; var _local2:int; var _local3:int; _local1 = new LogicaTiles(); trace("ordenar tiles"); _local2 = 0; while (_local2 < _matriz.length) { _tileActualX = _local2; _local3 = 0; while (_local3 < _matriz[_local2].length) { _tileActualY = _local3; _tileActualI = _matriz[_local2][_local3]; if (_tileActualI != 0){ if (_local1.enviarAlFondo(_tileActualI)){ _lienzo.setChildIndex(_matrizGrafica[_tileActualX][_tileActualY], 0); }; }; _local3++; }; _local2++; }; _local2 = 0; while (_local2 < _matriz.length) { _tileActualX = _local2; _local3 = 0; while (_local3 < _matriz[_local2].length) { _tileActualY = _local3; _tileActualI = _matriz[_local2][_local3]; if (_tileActualI != 0){ if (_local1.traerAlFrente(_tileActualI)){ _lienzo.setChildIndex(_matrizGrafica[_tileActualX][_tileActualY], (_lienzo.numChildren - 1)); }; }; _local3++; }; _local2++; }; _local2 = 0; while (_local2 < _matriz.length) { _tileActualX = _local2; _local3 = 0; while (_local3 < _matriz[_local2].length) { _tileActualY = _local3; _tileActualI = _matriz[_local2][_local3]; if (_tileActualI != 0){ if ((((_tileActualI >= 2)) && ((_tileActualI <= 5)))){ _lienzo.setChildIndex(_matrizGrafica[_tileActualX][_tileActualY], (_lienzo.numChildren - 1)); }; }; _local3++; }; _local2++; }; _local2 = 0; while (_local2 < _matriz.length) { _tileActualX = _local2; _local3 = 0; while (_local3 < _matriz[_local2].length) { _tileActualY = _local3; _tileActualI = _matriz[_local2][_local3]; if (_tileActualI != 0){ if ((((_tileActualI >= 50)) && ((_tileActualI <= 60)))){ _lienzo.setChildIndex(_matrizGrafica[_tileActualX][_tileActualY], (_lienzo.numChildren - 1)); }; }; _local3++; }; _local2++; }; } private function controlarSalirGuardar():void{ _menuGuardar.visible = false; } private function manejarClick(_arg1:MouseEvent):void{ switch (_arg1.currentTarget.name){ case "boton_ayuda": mostrarAyuda(); break; case "boton_ordenar": ordenarTiles(); break; case "boton_goma": controlarGomaTiles(!(_borrandoTiles)); break; case "boton_goma2": controlarGomaTiles(!(_borrandoTiles)); break; case "boton_borrar_todo": mostrarPanelBorrar(); break; case "boton_matriz": controlarMostrarMatriz(); break; case "boton_matriz2": controlarMostrarMatriz(); break; case "boton_comunes": limpiarSeleccionListas(); _menuCatalogoTiles.boton_comunes.gotoAndStop(2); _menuCatalogoTiles.boton_solidos.gotoAndStop(1); _menuCatalogoTiles.boton_no_solidos.gotoAndStop(1); listaComunes.visible = true; listaSolidos.visible = false; listaDecoracion.visible = false; break; case "boton_solidos": limpiarSeleccionListas(); _menuCatalogoTiles.boton_comunes.gotoAndStop(1); _menuCatalogoTiles.boton_solidos.gotoAndStop(2); _menuCatalogoTiles.boton_no_solidos.gotoAndStop(1); listaComunes.visible = false; listaSolidos.visible = true; listaDecoracion.visible = false; break; case "boton_no_solidos": limpiarSeleccionListas(); _menuCatalogoTiles.boton_comunes.gotoAndStop(1); _menuCatalogoTiles.boton_solidos.gotoAndStop(1); _menuCatalogoTiles.boton_no_solidos.gotoAndStop(2); listaComunes.visible = false; listaSolidos.visible = false; listaDecoracion.visible = true; break; case "boton_probar": VariablesGlobales.nivelPruebaActual = crearCadenaNivelActual(); if (validarMapaActual() == true){ this.dispatchEvent(new EditorEvent(EditorEvent.PROBAR_EDITOR)); } else { mostrarPanelError(); }; break; case "boton_salir": this.dispatchEvent(new EditorEvent(EditorEvent.SALIR_EDITOR)); break; case "boton_guardar": controlarGuardarNivel(); break; case "boton_cargar": controlarCargarNivel(); break; case "boton_salir_guardar": controlarSalirGuardar(); break; case "boton_subir_nivel": subirNivel(); break; case "boton_copiar": System.setClipboard(_menuGuardar.nivel_guardar.text); break; case "boton_salir_cargar": controlarSalirCargar(); break; case "boton_cargar_nivel": cargarNivel(_menuCargar.nivel_cargar.text); controlarSalirCargar(); break; case "cerrar_ayuda": mostrarAyuda(); break; case "boton_si_borrar": borrarTodo(); mostrarPanelBorrar(); VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.DESTROYER, _padre.parent); break; case "boton_no_borrar": mostrarPanelBorrar(); break; case "boton_ok_error": mostrarPanelError(); break; default: trace(("error manejarMenus editor " + _arg1.currentTarget)); }; } private function validarMapaActual():Boolean{ var _local1:Boolean; _local1 = true; trace(numeroAliens); trace(numeroBombas); if (numeroAliens <= 0){ return (false); }; if (numeroBombas <= 0){ return (false); }; return (_local1); } private function manejarMouseMoveLienzo(_arg1:MouseEvent):void{ _tileActualX = uint((_arg1.currentTarget.mouseX / _tileLado)); if (_tileActualX > (_mapaAncho - 1)){ _tileActualX = (_mapaAncho - 1); }; _tileActualY = uint((_arg1.currentTarget.mouseY / _tileLado)); if (_tileActualY > (_mapaAlto - 1)){ _tileActualY = (_mapaAlto - 1); }; if ((((_tileActualI > 0)) && (!((_borrandoTiles == true))))){ cursorTile.visible = true; } else { cursorTile.visible = false; }; cursorTile.x = (_tileActualX * _tileLado); cursorTile.y = (_tileActualY * _tileLado); marcoTile.x = (_tileActualX * _tileLado); marcoTile.y = (_tileActualY * _tileLado); marcoTileGoma.x = (_tileActualX * _tileLado); marcoTileGoma.y = (_tileActualY * _tileLado); rellenarTileActual(); } private function copiarTileAGrid():void{ var _local1:MovieClip; _local1 = new MovieClip(); _local1 = _tileActualMC; _matrizGrafica[_tileActualX][_tileActualY] = new MovieClip(); _matrizGrafica[_tileActualX][_tileActualY] = _local1; _local1.x = (_tileActualX * _tileLado); _local1.y = (_tileActualY * _tileLado); _lienzo.addChild(_matrizGrafica[_tileActualX][_tileActualY]); VariablesGlobales.camara.miniMapaDatos = _matriz; } private function actualizaEstadoBombas():void{ if (_bombasDisponibles[0] == true){ _menuCatalogoTiles.bomba_01.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_01.gotoAndStop(3); }; if (_bombasDisponibles[1] == true){ _menuCatalogoTiles.bomba_02.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_02.gotoAndStop(3); }; if (_bombasDisponibles[2] == true){ _menuCatalogoTiles.bomba_03.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_03.gotoAndStop(3); }; if (_bombasDisponibles[3] == true){ _menuCatalogoTiles.bomba_04.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_04.gotoAndStop(3); }; if (_bombasDisponibles[4] == true){ _menuCatalogoTiles.bomba_05.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_05.gotoAndStop(3); }; if (_bombasDisponibles[5] == true){ _menuCatalogoTiles.bomba_06.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_06.gotoAndStop(3); }; if (_bombasDisponibles[6] == true){ _menuCatalogoTiles.bomba_07.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_07.gotoAndStop(3); }; if (_bombasDisponibles[7] == true){ _menuCatalogoTiles.bomba_08.gotoAndStop(1); } else { _menuCatalogoTiles.bomba_08.gotoAndStop(3); }; } private function manejarMouseOutLienzo(_arg1:MouseEvent):void{ } private function finalizaBotonesBombas():void{ _menuCatalogoTiles.bomba_01.removeEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_02.removeEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_03.removeEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_04.removeEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_05.removeEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_06.removeEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_07.removeEventListener(MouseEvent.CLICK, manejarClickBomba); _menuCatalogoTiles.bomba_08.removeEventListener(MouseEvent.CLICK, manejarClickBomba); actualizaEstadoBombas(); } private function mostrarPanelBorrar():void{ _panelBorrarTodo.visible = !(_panelBorrarTodo.visible); } private function controlarGuardarNivel():void{ _menuGuardar.nivel_guardar.text = ""; _menuGuardar.nivel_guardar.text = crearCadenaNivelActual(); _menuGuardar.visible = true; } private function mostrarAyuda():void{ _panelAyuda.visible = !(_panelAyuda.visible); } private function controlarMinimizarMenuCatalogo():void{ if (_menuCatalogoTiles.y != (VariablesGlobales.ALTO_PANTALLA - 15)){ _menuCatalogoTiles.y = (VariablesGlobales.ALTO_PANTALLA - 15); } else { _menuCatalogoTiles.y = 0; }; } public function iniciaEditor(_arg1:DisplayObjectContainer){ var _local2:Number; _local2 = 0; _local2 = getTimer(); trace("Inicia Editor"); this.dispatchEvent(new EditorEvent(EditorEvent.CARGADO_EDITOR)); _padre = _arg1; _juegoContenedor = new Sprite(); _padre.addChild(_juegoContenedor); _lienzo = new Sprite(); _juegoContenedor.addChild(_lienzo); _interfazContenedor = new Sprite(); _padre.addChild(_interfazContenedor); _interfaz = new Sprite(); _interfazContenedor.addChild(_interfaz); VariablesGlobales.camara = new Camara(); VariablesGlobales.camara.iniciaCamara(_juegoContenedor, VariablesGlobales.ALTO_PANTALLA, VariablesGlobales.ANCHO_PANTALLA); crearGridEditor(); iniciaValores(); crearMenus(); if (VariablesGlobales.nivelPruebaActual != ""){ cargarNivel(VariablesGlobales.nivelPruebaActual); }; trace("Editor iniciado"); this.dispatchEvent(new EditorEvent(EditorEvent.CARGADO_EDITOR)); _local2 = (getTimer() - _local2); trace(_local2); VariablesGlobales.MusicMan.stopAllSounds(false); VariablesGlobales.SoundMan.stopAllSounds(false); } private function borrarTodo():void{ var _local1:int; var _local2:int; _local1 = 0; while (_local1 < _matrizGrafica.length) { _local2 = 0; while (_local2 < _matrizGrafica[_local1].length) { if (_matrizGrafica[_local1][_local2] != null){ _lienzo.removeChild(_matrizGrafica[_local1][_local2]); }; _local2++; }; _local1++; }; iniciaValores(); crearMatriz(); VariablesGlobales.camara.miniMapaDatos = _matriz; } private function crearMenus():void{ _menuCatalogoTiles = new menuCatalogoTiles(); _menuCatalogoTiles.x = (VariablesGlobales.ANCHO_PANTALLA - 150); _interfaz.addChild(_menuCatalogoTiles); _menuCatalogoTiles.boton_ayuda.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_ordenar.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_goma.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_goma.visible = false; _menuCatalogoTiles.boton_goma2.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_goma2.gotoAndStop(1); _menuCatalogoTiles.boton_borrar_todo.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_matriz.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_matriz.visible = false; _menuCatalogoTiles.boton_matriz2.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_matriz2.gotoAndStop(2); _menuCatalogoTiles.boton_comunes.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_solidos.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_no_solidos.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_probar.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_guardar.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_cargar.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_salir.addEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.visible = true; trace("cargar lista comunes "); listaComunes = new TileList(); rellenarLista(listaComunes, 1, 199); _menuCatalogoTiles.boton_comunes.gotoAndStop(2); listaComunes.visible = true; trace("cargar lista solidos"); listaSolidos = new TileList(); rellenarLista(listaSolidos, 200, 599); _menuCatalogoTiles.boton_solidos.gotoAndStop(1); listaSolidos.visible = false; trace("cargar lista decoracion"); listaDecoracion = new TileList(); rellenarLista(listaDecoracion, 600, 799); _menuCatalogoTiles.boton_no_solidos.gotoAndStop(1); listaDecoracion.visible = false; trace("cargar botones bombas"); iniciaBotonesBombas(); _menuCatalogoTiles.turnos.focusEnabled = false; _menuGuardar = new menuGuardar(); _menuGuardar.x = 190; _menuGuardar.y = 25; _menuGuardar.visible = false; _interfaz.addChild(_menuGuardar); _menuGuardar.boton_salir_guardar.addEventListener(MouseEvent.CLICK, manejarClick); _menuGuardar.boton_subir_nivel.addEventListener(MouseEvent.CLICK, manejarClick); _menuGuardar.boton_copiar.addEventListener(MouseEvent.CLICK, manejarClick); _panelSubirNivel = new panelSubirNivel(); _panelSubirNivel.visible = false; _interfaz.addChild(_panelSubirNivel); _panelSubirNivel.boton_subir_nivel.addEventListener(MouseEvent.CLICK, manejarClickSubirNivel); _panelSubirNivel.boton_cancelar_nivel.addEventListener(MouseEvent.CLICK, manejarClickSubirNivel); _menuCargar = new menuCargar(); _menuCargar.x = 190; _menuCargar.y = 25; _menuCargar.visible = false; _interfaz.addChild(_menuCargar); _menuCargar.boton_salir_cargar.addEventListener(MouseEvent.CLICK, manejarClick); _menuCargar.boton_cargar_nivel.addEventListener(MouseEvent.CLICK, manejarClick); _panelAyuda = new panelAyuda(); _panelAyuda.visible = false; _interfaz.addChild(_panelAyuda); _panelAyuda.cerrar_ayuda.addEventListener(MouseEvent.CLICK, manejarClick); _panelBorrarTodo = new panelBorrarTodo(); _panelBorrarTodo.visible = false; _interfaz.addChild(_panelBorrarTodo); _panelBorrarTodo.boton_si_borrar.addEventListener(MouseEvent.CLICK, manejarClick); _panelBorrarTodo.boton_no_borrar.addEventListener(MouseEvent.CLICK, manejarClick); _panelErrorEditor = new panelErrorEditor(); _panelErrorEditor.visible = false; _interfaz.addChild(_panelErrorEditor); _panelErrorEditor.boton_ok_error.addEventListener(MouseEvent.CLICK, manejarClick); trace("cargar minimapa"); VariablesGlobales.camara.irA(new Point(0, (_mapaAlto * _tileLado))); VariablesGlobales.camara.crearMinimapa(_menuCatalogoTiles, ((_mapaAncho * _tileLado) + _menuCatalogoTiles.width), (_mapaAlto * _tileLado), new Point(-530, 10)); VariablesGlobales.camara.limitesCamara = new Rectangle(0, 0, ((_mapaAncho * _tileLado) + 150), (_mapaAlto * _tileLado)); } private function manejarClickSubirNivel(_arg1:MouseEvent):void{ switch (_arg1.currentTarget.name){ case "boton_subir_nivel": break; case "boton_cancelar_nivel": break; default: trace(("error panelSubirNivel editor " + _arg1.currentTarget)); }; } private function controlarCargarNivel():void{ _menuCargar.nivel_cargar.text = ""; _menuCargar.visible = true; } private function controlarGomaTiles(_arg1:Boolean):void{ _borrandoTiles = _arg1; marcoTile.visible = !(_borrandoTiles); marcoTileGoma.visible = _borrandoTiles; if (_borrandoTiles){ _menuCatalogoTiles.boton_goma2.gotoAndStop(2); } else { _menuCatalogoTiles.boton_goma2.gotoAndStop(1); }; } private function controlarSalirCargar():void{ _menuCargar.visible = false; } private function crearCadenaNivelActual():String{ var _local1:String; var _local2:int; var _local3:String; var _local4:int; var _local5:int; var _local6:String; var _local7:int; _local1 = ""; numeroAliens = 0; numeroBombas = 0; _local2 = 0; while (_local2 < _matriz.length) { _local5 = 0; while (_local5 < _matriz[_local2].length) { _local6 = ""; if (_matriz[_local2][_local5] != 0){ _local6 = _matriz[_local2][_local5]; if ((((_matriz[_local2][_local5] >= LogicaTiles.ELEFANTE)) && ((_matriz[_local2][_local5] <= LogicaTiles.TORTUGA)))){ numeroAliens = (numeroAliens + 1); }; }; _local1 = (_local1 + _local6); if (_local5 < (_matriz[_local2].length - 1)){ _local1 = (_local1 + ","); }; _local5++; }; _local1 = (_local1 + "|"); _local2++; }; _local3 = ""; _local4 = 0; while (_local4 < _bombasDisponibles.length) { _local7 = 0; if (_bombasDisponibles[_local4] == true){ _local7 = 1; numeroBombas = (numeroBombas + 1); }; _local3 = (_local3 + _local7); if (_local4 != (_bombasDisponibles.length - 1)){ _local3 = (_local3 + ","); }; _local4++; }; _turnosNivel = _menuCatalogoTiles.turnos.value; _temaNivel = int(_menuCatalogoTiles.fondo_txt.text); _local1 = ((((((((((_mapaAncho + ",") + _mapaAlto) + ",") + _temaNivel) + ",") + _turnosNivel) + ",") + _local3) + ";") + _local1); return (_local1); } private function rellenarTileActual():void{ if (_pintandoTiles == true){ if (_borrandoTiles == true){ borrarContenidoTileActual(); } else { if ((((_matriz[_tileActualX][_tileActualY] == 0)) && (!((_tileActualI == 0))))){ _tileActualMC = new catalogoTiles(); _tileActualMC.gotoAndStop(_tileActualI); _matriz[_tileActualX][_tileActualY] = _tileActualI; copiarTileAGrid(); }; }; }; } private function manejarMouseUpLienzo(_arg1:MouseEvent):void{ _pintandoTiles = false; } private function eliminarGridEditor():void{ _lienzo.graphics.clear(); if (cursorTile != null){ _lienzo.removeChild(cursorTile); }; if (marcoTile != null){ _lienzo.removeChild(marcoTile); }; if (marcoTileGoma != null){ _lienzo.removeChild(marcoTileGoma); }; _lienzo.removeEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownLienzo); _lienzo.removeEventListener(MouseEvent.MOUSE_UP, manejarMouseUpLienzo); _lienzo.removeEventListener(MouseEvent.CLICK, manejarMouseClickLienzo); _lienzo.removeEventListener(MouseEvent.MOUSE_OUT, manejarMouseOutLienzo); } private function cargarNivel(_arg1:String):void{ borrarTodo(); iniciaValores(); parsearCadenaNivel(_arg1); crearGridEditor(); pintarTilesCargados(); ordenarTiles(); VariablesGlobales.nivelesCargados = (VariablesGlobales.nivelesCargados + 1); if (VariablesGlobales.nivelesCargados >= 5){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.NEW_EXPERIENCES, _padre.parent); }; } private function agregarLienzoMouse(){ var _local1:Sprite; _local1 = new Sprite(); _local1.graphics.lineStyle(0.1, 0xFFFFFF, 0.01, false); _local1.graphics.beginFill(0xFFFFFF, 0.01); _local1.graphics.drawRect(0, 0, (_mapaAncho * _tileLado), (_mapaAlto * _tileLado)); _lienzo.addChild(_local1); } private function finalizaMenus(){ _menuCatalogoTiles.boton_ayuda.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_ordenar.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_goma.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_goma2.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_borrar_todo.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_matriz.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_matriz2.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_comunes.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_solidos.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_no_solidos.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_probar.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_guardar.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_cargar.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCatalogoTiles.boton_salir.removeEventListener(MouseEvent.CLICK, manejarClick); listaComunes.removeEventListener(Event.CHANGE, manejarCambioLista); listaSolidos.removeEventListener(Event.CHANGE, manejarCambioLista); listaDecoracion.removeEventListener(Event.CHANGE, manejarCambioLista); _menuGuardar.boton_salir_guardar.removeEventListener(MouseEvent.CLICK, manejarClick); _menuGuardar.boton_subir_nivel.removeEventListener(MouseEvent.CLICK, manejarClick); _menuGuardar.boton_copiar.removeEventListener(MouseEvent.CLICK, manejarClick); _panelSubirNivel.boton_subir_nivel.removeEventListener(MouseEvent.CLICK, manejarClickSubirNivel); _panelSubirNivel.boton_cancelar_nivel.removeEventListener(MouseEvent.CLICK, manejarClickSubirNivel); _menuCargar.boton_salir_cargar.removeEventListener(MouseEvent.CLICK, manejarClick); _menuCargar.boton_cargar_nivel.removeEventListener(MouseEvent.CLICK, manejarClick); finalizaBotonesBombas(); _panelAyuda.cerrar_ayuda.removeEventListener(MouseEvent.CLICK, manejarClick); _panelBorrarTodo.boton_si_borrar.removeEventListener(MouseEvent.CLICK, manejarClick); _panelBorrarTodo.boton_no_borrar.removeEventListener(MouseEvent.CLICK, manejarClick); _panelErrorEditor.boton_ok_error.removeEventListener(MouseEvent.CLICK, manejarClick); } } }//package
Section 192
//EditorEvent (EditorEvent) package { import flash.events.*; public class EditorEvent extends Event { public static const EDITAR_EDITOR:String = "EditarEditor"; public static const CARGADO_EDITOR:String = "CargadoEditor"; public static const SALIR_EDITOR:String = "SalirEditor"; public static const PROBAR_EDITOR:String = "ProbarEditor"; public static const CARGAR_EDITOR:String = "CargarEditor"; public function EditorEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("EditorEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new EditorEvent(type, bubbles, cancelable)); } } }//package
Section 193
//Elefante (Elefante) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Elefante extends MovieClip { public function Elefante(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 194
//elephant_humo (elephant_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class elephant_humo extends MovieClip { public function elephant_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 195
//EntradaCueva (EntradaCueva) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class EntradaCueva extends Actor { public function EntradaCueva(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new Sprite(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((30 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((30 / VariablesGlobales.RATIO), (300 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (300 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); } } }//package
Section 196
//EstaticoActor (EstaticoActor) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class EstaticoActor extends Actor { public function EstaticoActor(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:Point, _arg4:Array){ var _local5:b2Body; _local5 = crearCuerpoDesdeCoordenadas(_arg4, _arg3); _arg1.addChild(_arg2); super(_local5, _arg2); } private function crearCuerpoDesdeCoordenadas(_arg1:Array, _arg2:Point):b2Body{ var _local3:Array; var _local4:Array; var _local5:b2BodyDef; var _local6:b2Body; var _local7:b2ShapeDef; var _local8:b2PolygonDef; var _local9:int; var _local10:Point; _local3 = []; for each (_local4 in _arg1) { _local8 = new b2PolygonDef(); _local8.vertexCount = _local4.length; _local9 = 0; while (_local9 < _local4.length) { _local10 = _local4[_local9]; b2Vec2(_local8.vertices[_local9]).Set((_local10.x / VariablesGlobales.RATIO), (_local10.y / VariablesGlobales.RATIO)); _local9++; }; _local8.density = 0; _local8.friction = 0.2; _local8.restitution = 0; _local8.userData = this; _local3.push(_local8); }; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.allowSleep = false; _local6 = VariablesGlobales.mundo.CreateBody(_local5); for each (_local7 in _local3) { _local6.CreateShape(_local7); }; _local6.SetMassFromShapes(); return (_local6); } } }//package
Section 197
//estrellas (estrellas) package { import flash.media.*; public dynamic class estrellas extends Sound { } }//package
Section 198
//FabricaActores (FabricaActores) package { import flash.display.*; import flash.geom.*; import Box2D.Common.Math.*; public class FabricaActores { public function crearActor(_arg1:DisplayObjectContainer, _arg2:int, _arg3:int, _arg4:int):Actor{ var _local5:LogicaTiles; var _local6:*; var _local7:int; var _local8:MovieClip; _local5 = new LogicaTiles(); _local7 = _local5.tipoLogicaTile(_arg2); _local8 = new catalogoTiles(); _local8.gotoAndStop(_arg2); switch (_local7){ case LogicaTiles.LIMITES_MUNDO: _local6 = new LimiteMundo(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.CAMION_1: _local6 = new CamionActor(_arg1, new Point(_arg3, _arg4), 1); break; case LogicaTiles.CAMION_2: _local6 = new CamionActor(_arg1, new Point(_arg3, _arg4), 2); break; case LogicaTiles.CAMION_3: _local6 = new CamionActor(_arg1, new Point(_arg3, _arg4), 3); break; case LogicaTiles.CAMION_4: _local6 = new CamionActor(_arg1, new Point(_arg3, _arg4), 4); break; case LogicaTiles.ALMACEN: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.ALMACEN)); break; case LogicaTiles.ZONA_DESCARGA: _local6 = new ZonaDescarga(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.ELEFANTE: _local6 = new JaulaElefante(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.AGUILA: _local6 = new JaulaAguila(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.LEON: _local6 = new JaulaLeon(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.CEBRA: _local6 = new JaulaCebra(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.MONO: _local6 = new JaulaMono(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.DELFIN: _local6 = new JaulaDelfin(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.JIRAFA: _local6 = new JaulaJirafa(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.TORTUGA: _local6 = new JaulaTortuga(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.COMIDA: _local6 = new JaulaComida(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.BARRO_AREA_X_2: _local6 = new TerrenoBarro(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.PUENTE: _local6 = new PuenteCuerdas(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.ASCENSOR: _local6 = new PlataformaDinamicaHorizontal(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.NUEZ_IZQUIERDA: _local6 = new Proyectil(_arg1, new Bellota(), new Point(_arg3, _arg4), new b2Vec2(-1, 1)); break; case LogicaTiles.NUEZ_DERECHA: _local6 = new Proyectil(_arg1, new Bellota(), new Point(_arg3, _arg4), new b2Vec2(1, 1), true); break; case LogicaTiles.ABEJA_IZQUIERDA: _local6 = new Proyectil(_arg1, new Abeja(), new Point(_arg3, _arg4), new b2Vec2(-1, 0)); break; case LogicaTiles.ABEJA_DERECHA: _local6 = new Proyectil(_arg1, new Abeja(), new Point(_arg3, _arg4), new b2Vec2(1, 0), true); break; case LogicaTiles.MURCIELAGO_IZQUIERDA: _local6 = new Proyectil(_arg1, new Murcielago(), new Point(_arg3, _arg4), new b2Vec2(-1, 0)); break; case LogicaTiles.MURCIELAGO_DERECHA: _local6 = new Proyectil(_arg1, new Murcielago(), new Point(_arg3, _arg4), new b2Vec2(1, 0), true); break; case LogicaTiles.CANGREJO: _local6 = new Proyectil(_arg1, new Cangrejo(), new Point(_arg3, _arg4), new b2Vec2(0, -1)); break; case LogicaTiles.ROCA: _local6 = new Proyectil(_arg1, new Piedra(), new Point(_arg3, _arg4), new b2Vec2(0, 3)); break; case LogicaTiles.AGUA: _local6 = new Agua(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.INFLUENCIA_AGUA: _local6 = new InfluenciaAgua(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.SALIDA_CUEVA: _local6 = new SalidaCueva(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.ENTRADA_CUEVA: _local6 = new EntradaCueva(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.FIN_BALA: _local6 = new FinBala(_arg1, new Point(_arg3, _arg4)); break; case LogicaTiles.PARED_VERTICAL: _local6 = new TerrenoInvisible(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.PARED_VERTICAL)); break; case LogicaTiles.TIERRA_X_1: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_X_1)); break; case LogicaTiles.TIERRA_X_2: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_X_2)); break; case LogicaTiles.TIERRA_X_3: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_X_3)); break; case LogicaTiles.TIERRA_X_4: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_X_4)); break; case LogicaTiles.TIERRA_X_5: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_X_5)); break; case LogicaTiles.TIERRA_SUBIDA_X_3: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_SUBIDA_X_3)); break; case LogicaTiles.TIERRA_SUBIDA_X_4: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_SUBIDA_X_4)); break; case LogicaTiles.TIERRA_SUBIDA_X_5: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_SUBIDA_X_5)); break; case LogicaTiles.TIERRA_BAJADA_X_3: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_BAJADA_X_3)); break; case LogicaTiles.TIERRA_BAJADA_X_4: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_BAJADA_X_4)); break; case LogicaTiles.TIERRA_BAJADA_X_5: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.TIERRA_BAJADA_X_5)); break; case LogicaTiles.BARRO_X_2: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.BARRO_X_2)); break; case LogicaTiles.BARRO_BAJADA_X_2: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.BARRO_BAJADA_X_2)); break; case LogicaTiles.BARRO_SUBIDA_X_2: _local6 = new TerrenoTierra(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.BARRO_SUBIDA_X_2)); break; case LogicaTiles.ACEITE_X_3: _local6 = new TerrenoAceite(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.ACEITE_X_3)); break; case LogicaTiles.ACEITE_X_4: _local6 = new TerrenoAceite(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.ACEITE_X_4)); break; case LogicaTiles.ACEITE_X_5: _local6 = new TerrenoAceite(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.ACEITE_X_5)); break; case LogicaTiles.NORMAL_X_1: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_X_1)); break; case LogicaTiles.NORMAL_X_3: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_X_3)); break; case LogicaTiles.NORMAL_X_4: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_X_4)); break; case LogicaTiles.NORMAL_X_5: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_X_5)); break; case LogicaTiles.NORMAL_SUBIDA_X_3: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_SUBIDA_X_3)); break; case LogicaTiles.NORMAL_SUBIDA_X_4: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_SUBIDA_X_4)); break; case LogicaTiles.NORMAL_SUBIDA_X_5: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_SUBIDA_X_5)); break; case LogicaTiles.NORMAL_BAJADA_X_3: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_BAJADA_X_3)); break; case LogicaTiles.NORMAL_BAJADA_X_4: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_BAJADA_X_4)); break; case LogicaTiles.NORMAL_BAJADA_X_5: _local6 = new EstaticoActor(_arg1, _local8, new Point(_arg3, _arg4), _local5.coordenadasLogicaTile(LogicaTiles.NORMAL_BAJADA_X_5)); break; default: _local6 = new DecoracionActor(_arg1, _local8, new Point(_arg3, _arg4)); }; _local6.indice = _arg2; return (Actor(_local6)); } } }//package
Section 199
//Final (Final) package { import flash.display.*; import flash.events.*; public class Final extends MovieClip { public var salir:SimpleButton; public var main_class:MovieClip; public function Final(){ salir.addEventListener(MouseEvent.CLICK, on_button_clicked); } public function on_button_clicked(_arg1:MouseEvent){ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.currentTarget.name){ case "salir": main_class.abre_pantalla(new Principal()); main_class.cierra_pantalla(this); break; default: trace((_arg1.target.name + " UNDEFINED")); break; }; } } }//package
Section 200
//FinBala (FinBala) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class FinBala extends Actor { public function FinBala(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new ZonaFinBala(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((60 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((60 / VariablesGlobales.RATIO), (60 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (60 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); } override protected function actualizacionEspecificaHijo():void{ super.actualizacionEspecificaHijo(); } } }//package
Section 201
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 202
//food_humo (food_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class food_humo extends MovieClip { public function food_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 203
//giraffe_humo (giraffe_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class giraffe_humo extends MovieClip { public function giraffe_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 204
//humo (humo) package { import flash.media.*; public dynamic class humo extends Sound { } }//package
Section 205
//InfluenciaAgua (InfluenciaAgua) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class InfluenciaAgua extends Actor { public function InfluenciaAgua(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new Sprite(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((420 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((420 / VariablesGlobales.RATIO), (150 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (150 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); } override protected function actualizacionEspecificaHijo():void{ super.actualizacionEspecificaHijo(); } } }//package
Section 206
//ingame1 (ingame1) package { import flash.media.*; public dynamic class ingame1 extends Sound { } }//package
Section 207
//Jaula (Jaula) package { import flash.display.*; public dynamic class Jaula extends MovieClip { } }//package
Section 208
//JaulaActor (JaulaActor) package { import flash.display.*; import flash.utils.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class JaulaActor extends Actor { private var _agua_cerca:Boolean;// = false private var _dentro_cueva:Boolean;// = false private var _vivo:Boolean;// = true public var indice_general:int; public var _efecto_humo; public var tiempo_nacimiento:Number; public var _es_animal:Boolean;// = true public var _posicion_orgien:b2Vec2; public var _fuerzaGiro:Number;// = 0.1 public var _enCarga:Boolean;// = false public var _comida_cerca:Boolean;// = false private var _volver_origen:Boolean;// = false public var _enCargaCalculado:Boolean;// = false public var descargar_ahora:Boolean;// = false public var _fuerzaSalto:Number;// = 0.005 public function JaulaActor(_arg1:b2Body, _arg2:Sprite){ _vivo = true; descargar_ahora = false; _fuerzaGiro = 0.1; _fuerzaSalto = 0.005; _volver_origen = false; _agua_cerca = false; _dentro_cueva = false; _es_animal = true; _comida_cerca = false; _enCarga = false; _enCargaCalculado = false; tiempo_nacimiento = getTimer(); indice_general = VariablesGlobales.IndiceCaja; VariablesGlobales.IndiceCaja = (VariablesGlobales.IndiceCaja + 1); trace(("caja creada " + indice_general)); super(_arg1, _arg2); _posicion_orgien = new b2Vec2(_arg1.GetPosition().x, _arg1.GetPosition().y); trace(((("origen: " + _posicion_orgien.x) + " ") + _posicion_orgien.y)); } public function get vivo():Boolean{ return (_vivo); } public function get dentro_cueva():Boolean{ return (_dentro_cueva); } public function Salto():void{ if (_comida_cerca){ trace("comida cerca no saltar"); return; }; cuerpo.ApplyImpulse(new b2Vec2(0, -(_fuerzaSalto)), cuerpo.GetWorldCenter()); } override protected function gestionarFueraDeLimites():void{ Devolver(); super.gestionarFueraDeLimites(); } public function set agua_cerca(_arg1:Boolean):void{ _agua_cerca = _arg1; } public function Sacudir():void{ var _local1:Number; if (_comida_cerca){ trace("comida cerca no sacudir"); return; }; _local1 = 1; if ((Math.random() * 100) > 50){ cuerpo.ApplyTorque(_fuerzaGiro); } else { cuerpo.ApplyTorque(-(_fuerzaGiro)); }; } public function set dentro_cueva(_arg1:Boolean):void{ _dentro_cueva = _arg1; } public function Devolver():void{ _efecto_humo.parent.setChildIndex(_efecto_humo, (_efecto_humo.parent.numChildren - 1)); _efecto_humo.x = this._disfraz.x; _efecto_humo.y = this._disfraz.y; _efecto_humo.rotation = this._disfraz.rotation; _efecto_humo.gotoAndPlay(2); _volver_origen = true; VariablesGlobales.SoundMan.playSound("humo", 1, 0); if (((CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga) && (!(VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.ANIMAL_THROWER))))){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.ANIMAL_THROWER, VariablesGlobales.contenedorPadre); }; if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ VariablesGlobales.numero_cajas_perdidas = (VariablesGlobales.numero_cajas_perdidas + 1); if ((((VariablesGlobales.numero_cajas_perdidas >= 5)) && (!(VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.LOSER))))){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.LOSER, VariablesGlobales.contenedorPadre); }; }; } public function set vivo(_arg1:Boolean):void{ _vivo = _arg1; } public function get agua_cerca():Boolean{ return (_agua_cerca); } public function Descargar():void{ trace(("marcar descarga " + indice_general)); descargar_ahora = true; if (_vivo){ trace(("descargar jaula " + indice_general)); _vivo = false; VariablesGlobales.motor.eliminarActor(this); if (_es_animal){ VariablesGlobales.motor.animalDescargado(); if ((((MovieClip(disfraz).currentFrame == 3)) && (!(VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.JUST_IN_TIME))))){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.JUST_IN_TIME, VariablesGlobales.contenedorPadre); }; }; } else { trace(("no esta vivo " + indice_general)); }; } override protected function actualizacionEspecificaHijo():void{ if (_cuerpo.GetAngularVelocity() > 1){ _cuerpo.SetAngularVelocity(1); }; if (_volver_origen){ cuerpo.SetAngularVelocity(0); cuerpo.SetLinearVelocity(new b2Vec2(0, 0)); cuerpo.SetXForm(_posicion_orgien, 0); _volver_origen = false; }; if (VariablesGlobales.motor.camaraInicial){ _enCarga = true; _enCargaCalculado = false; MovieClip(disfraz).gotoAndStop(1); } else { _enCarga = false; }; if (_comida_cerca){ MovieClip(_disfraz).gotoAndPlay(1); }; super.actualizacionEspecificaHijo(); } } }//package
Section 209
//JaulaAguila (JaulaAguila) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaAguila extends JaulaActor { var _tiempo_margen_salto:Number;// = 3000 var _volando:Boolean;// = false var _tiempo_siguiente_salto:Number;// = 0 var _tiempo_tregua:Number;// = 2000 var _controlar_logica:Boolean;// = true var _tiempo_medio_salto:Number;// = 0 var _tiempo_minimo_salto:Number;// = 5000 var _tiempo_fin_tregua:Number;// = 0 var _tiempo_volando:Number;// = 3000 var _tiempo_fin_vuelo:Number;// = 0 public function JaulaAguila(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:MovieClip; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _tiempo_siguiente_salto = 0; _tiempo_minimo_salto = 5000; _tiempo_margen_salto = 3000; _tiempo_medio_salto = 0; _tiempo_tregua = 2000; _tiempo_fin_tregua = 0; _tiempo_volando = 3000; _tiempo_fin_vuelo = 0; _volando = false; _controlar_logica = true; _local3 = new Aguila(); _local3.gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 3; b2Vec2(_local4.vertices[0]).Set((22.5 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((45 / VariablesGlobales.RATIO), (39 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((0 / VariablesGlobales.RATIO), (39 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _fuerzaSalto = 0.0002; CalcularTiempos(); _efecto_humo = new parrot_humo(); _arg1.addChild(_efecto_humo); } function RecalcularTiempos():void{ if ((((_enCarga == false)) && ((_enCargaCalculado == false)))){ trace("recalc loro"); CalcularTiempos(); _enCargaCalculado = true; }; } private function CalcularTiempos():void{ _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); _tiempo_siguiente_salto = (((_tiempo_tregua + getTimer()) + _tiempo_minimo_salto) + (Math.random() * _tiempo_margen_salto)); _tiempo_medio_salto = (getTimer() + (((_tiempo_siguiente_salto - getTimer()) / 3) * 2)); _tiempo_fin_vuelo = (getTimer() + _tiempo_volando); } private function Volar():void{ Salto(); } private function ControlLogica():void{ if (_controlar_logica){ if (_volando){ if (getTimer() > _tiempo_fin_vuelo){ CalcularTiempos(); _volando = false; cuerpo.SetLinearVelocity(new b2Vec2(0, 0)); MovieClip(_disfraz).gotoAndStop(1); } else { MovieClip(_disfraz).gotoAndStop(3); Volar(); }; } else { if (getTimer() > _tiempo_siguiente_salto){ _volando = true; CalcularTiempos(); } else { if (getTimer() > _tiempo_medio_salto){ MovieClip(_disfraz).gotoAndStop(2); }; }; }; }; } override protected function actualizacionEspecificaHijo():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); } else { CalcularTiempos(); }; super.actualizacionEspecificaHijo(); } } }//package
Section 210
//JaulaCebra (JaulaCebra) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaCebra extends JaulaActor { var _velocidadMinima:Number;// = 3 var _tiempo_margen_salto:Number;// = 100 var _tiempo_siguiente_salto:Number;// = 0 var _tiempo_tregua:Number;// = 2000 var _controlar_logica:Boolean;// = true var _tiempo_medio_salto:Number;// = 0 var _tiempo_minimo_salto:Number;// = 100 var _tiempo_fin_tregua:Number;// = 0 public function JaulaCebra(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _tiempo_siguiente_salto = 0; _tiempo_minimo_salto = 100; _tiempo_margen_salto = 100; _velocidadMinima = 3; _tiempo_medio_salto = 0; _tiempo_tregua = 2000; _tiempo_fin_tregua = 0; _controlar_logica = true; _local3 = new Cebra(); MovieClip(_local3).gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((60 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((60 / VariablesGlobales.RATIO), (45 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (45 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); CalcularTiempos(); _efecto_humo = new zebra_humo(); _arg1.addChild(_efecto_humo); } private function CalcularTiempos():void{ _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); _tiempo_siguiente_salto = (((_tiempo_tregua + getTimer()) + _tiempo_minimo_salto) + (Math.random() * _tiempo_margen_salto)); _tiempo_medio_salto = (getTimer() + (((_tiempo_siguiente_salto - getTimer()) / 3) * 2)); } private function ControlLogica():void{ if (_controlar_logica){ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).en_movimiento){ if (getTimer() > _tiempo_siguiente_salto){ CalcularTiempos(); Salto(); Sacudir(); MovieClip(_disfraz).gotoAndStop(3); } else { if (getTimer() > _tiempo_medio_salto){ MovieClip(_disfraz).gotoAndStop(2); } else { if (getTimer() > _tiempo_fin_tregua){ MovieClip(_disfraz).gotoAndStop(1); }; }; }; } else { MovieClip(_disfraz).gotoAndStop(1); CalcularTiempos(); }; }; } override protected function actualizacionEspecificaHijo():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); } else { CalcularTiempos(); }; super.actualizacionEspecificaHijo(); } } }//package
Section 211
//JaulaComida (JaulaComida) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaComida extends JaulaActor { public function JaulaComida(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new Comida(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((45 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((45 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); b2PolygonDef(_local4).isSensor = true; b2PolygonDef(_local4).SetAsOrientedBox(((55 / 2) / VariablesGlobales.RATIO), ((40 / 2) / VariablesGlobales.RATIO), new b2Vec2(((45 / 2) / VariablesGlobales.RATIO), ((30 / 2) / VariablesGlobales.RATIO)), 0); _local6.CreateShape(b2ShapeDef(_local4)); super(_local6, _local3); _es_animal = false; _efecto_humo = new food_humo(); _arg1.addChild(_efecto_humo); } } }//package
Section 212
//JaulaDelfin (JaulaDelfin) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaDelfin extends JaulaActor { var _tiempo_margen_salto:Number;// = 1500 var _tiempo_siguiente_salto:Number;// = 0 var _tiempo_tregua:Number;// = 1000 var _tiempo_medio_salto:Number;// = 0 var _tiempo_minimo_salto:Number;// = 5000 var _tiempo_fin_tregua:Number;// = 0 public function JaulaDelfin(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _tiempo_siguiente_salto = 0; _tiempo_minimo_salto = 5000; _tiempo_margen_salto = 1500; _tiempo_medio_salto = 0; _tiempo_tregua = 1000; _tiempo_fin_tregua = 0; _local3 = new Delfin(); MovieClip(_local3).gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((90 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((90 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _fuerzaSalto = 0.012; _fuerzaGiro = 0.05; CalcularTiempos(); _efecto_humo = new dolphin_humo(); _arg1.addChild(_efecto_humo); } private function CalcularTiempos():void{ _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); _tiempo_siguiente_salto = (((_tiempo_tregua + getTimer()) + _tiempo_minimo_salto) + (Math.random() * _tiempo_margen_salto)); _tiempo_medio_salto = (getTimer() + (((_tiempo_siguiente_salto - getTimer()) / 3) * 2)); } private function ControlLogica():void{ if (agua_cerca){ CalcularTiempos(); MovieClip(_disfraz).gotoAndStop(1); } else { if (getTimer() > _tiempo_siguiente_salto){ CalcularTiempos(); Salto(); Sacudir(); MovieClip(_disfraz).gotoAndStop(3); } else { if (getTimer() > _tiempo_medio_salto){ MovieClip(_disfraz).gotoAndStop(2); } else { if (getTimer() > _tiempo_fin_tregua){ MovieClip(_disfraz).gotoAndStop(1); }; }; }; }; } override protected function actualizacionEspecificaHijo():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); } else { CalcularTiempos(); MovieClip(_disfraz).gotoAndStop(1); }; super.actualizacionEspecificaHijo(); } } }//package
Section 213
//JaulaElefante (JaulaElefante) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaElefante extends JaulaActor { var _tiempo_margen_salto:Number;// = 3000 var _tiempo_siguiente_salto:Number;// = 0 var _tiempo_tregua:Number;// = 2000 var _tiempo_medio_salto:Number;// = 0 var _tiempo_minimo_salto:Number;// = 10000 var _tiempo_fin_tregua:Number;// = 0 public function JaulaElefante(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _tiempo_siguiente_salto = 0; _tiempo_minimo_salto = 10000; _tiempo_margen_salto = 3000; _tiempo_medio_salto = 0; _tiempo_tregua = 2000; _tiempo_fin_tregua = 0; _local3 = new Elefante(); MovieClip(_local3).gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((90 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((90 / VariablesGlobales.RATIO), (90 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (90 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _fuerzaSalto = 0.012; _fuerzaGiro = 0.3; CalcularTiempos(); _efecto_humo = new elephant_humo(); _arg1.addChild(_efecto_humo); } private function CalcularTiempos():void{ _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); _tiempo_siguiente_salto = (((_tiempo_tregua + getTimer()) + _tiempo_minimo_salto) + (Math.random() * _tiempo_margen_salto)); _tiempo_medio_salto = (getTimer() + (((_tiempo_siguiente_salto - getTimer()) / 3) * 2)); } private function ControlLogica():void{ if (agua_cerca){ MovieClip(_disfraz).gotoAndStop(3); Sacudir(); _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); } else { if ((((MovieClip(_disfraz).currentFrame == 3)) && ((getTimer() > _tiempo_fin_tregua)))){ MovieClip(_disfraz).gotoAndStop(1); }; }; } override protected function actualizacionEspecificaHijo():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); }; super.actualizacionEspecificaHijo(); } } }//package
Section 214
//JaulaJirafa (JaulaJirafa) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaJirafa extends JaulaActor { public function JaulaJirafa(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new Jirafa(); MovieClip(_local3).gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((45 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((45 / VariablesGlobales.RATIO), (105 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (105 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _fuerzaSalto = 0.025; _fuerzaGiro = 0.15; _efecto_humo = new giraffe_humo(); _arg1.addChild(_efecto_humo); } override public function Devolver():void{ dentro_cueva = false; super.Devolver(); } private function ControlLogica():void{ if (dentro_cueva){ Sacudir(); MovieClip(disfraz).gotoAndStop(3); } else { MovieClip(disfraz).gotoAndStop(1); }; } override public function actualizaAhora():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); }; super.actualizaAhora(); } } }//package
Section 215
//JaulaLeon (JaulaLeon) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaLeon extends JaulaActor { var _tiempo_margen_salto:Number;// = 1500 var _tiempo_contacto_fin:Number;// = 0 var _tiempo_siguiente_salto:Number;// = 0 var _tiempo_tregua:Number;// = 2000 var _controlar_logica:Boolean;// = true var _tiempo_margen_contacto:Number;// = 1000 var _tiempo_medio_salto:Number;// = 0 var _tiempo_minimo_salto:Number;// = 3000 var _tiempo_fin_tregua:Number;// = 0 private var _en_contacto:Boolean;// = false public function JaulaLeon(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _tiempo_siguiente_salto = 0; _tiempo_minimo_salto = 3000; _tiempo_margen_salto = 1500; _tiempo_medio_salto = 0; _tiempo_tregua = 2000; _tiempo_fin_tregua = 0; _tiempo_margen_contacto = 1000; _tiempo_contacto_fin = 0; _controlar_logica = true; _en_contacto = false; _local3 = new Leon(); MovieClip(_local3).gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((60 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((60 / VariablesGlobales.RATIO), (60 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (60 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _fuerzaGiro = 0.4; _efecto_humo = new lion_humo(); _arg1.addChild(_efecto_humo); } private function CalcularTiempos():void{ _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); _tiempo_siguiente_salto = (((_tiempo_tregua + getTimer()) + _tiempo_minimo_salto) + (Math.random() * _tiempo_margen_salto)); _tiempo_medio_salto = (getTimer() + (((_tiempo_siguiente_salto - getTimer()) / 3) * 2)); } public function get en_contacto():Boolean{ return (_en_contacto); } public function set en_contacto(_arg1:Boolean):void{ if (_arg1 == true){ _tiempo_contacto_fin = (getTimer() + _tiempo_margen_contacto); }; _en_contacto = _arg1; } private function ControlLogica():void{ if (_controlar_logica){ if (_en_contacto){ if (getTimer() > _tiempo_siguiente_salto){ CalcularTiempos(); Salto(); Sacudir(); MovieClip(_disfraz).gotoAndStop(3); } else { if (getTimer() > _tiempo_medio_salto){ MovieClip(_disfraz).gotoAndStop(2); } else { if (getTimer() > _tiempo_fin_tregua){ MovieClip(_disfraz).gotoAndStop(2); }; }; }; } else { if (getTimer() > _tiempo_contacto_fin){ if (MovieClip(_disfraz).currentFrame == 3){ if (getTimer() > _tiempo_fin_tregua){ MovieClip(_disfraz).gotoAndStop(1); CalcularTiempos(); }; } else { MovieClip(_disfraz).gotoAndStop(1); CalcularTiempos(); }; }; }; }; } override protected function actualizacionEspecificaHijo():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); } else { CalcularTiempos(); }; super.actualizacionEspecificaHijo(); } } }//package
Section 216
//JaulaMono (JaulaMono) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaMono extends JaulaActor { var _tiempo_margen_salto:Number;// = 3000 var _tiempo_siguiente_salto:Number;// = 0 var _tiempo_tregua:Number;// = 2000 var _controlar_logica:Boolean;// = true var _tiempo_medio_salto:Number;// = 0 var _tiempo_minimo_salto:Number;// = 10000 var _tiempo_fin_tregua:Number;// = 0 public function JaulaMono(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _tiempo_siguiente_salto = 0; _tiempo_minimo_salto = 10000; _tiempo_margen_salto = 3000; _tiempo_medio_salto = 0; _tiempo_tregua = 2000; _tiempo_fin_tregua = 0; _controlar_logica = true; _local3 = new Mono(); MovieClip(_local3).gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((45 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((45 / VariablesGlobales.RATIO), (45 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (45 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _fuerzaSalto = 0.006; _fuerzaGiro = 0; CalcularTiempos(); _efecto_humo = new monkey_humo(); _arg1.addChild(_efecto_humo); } private function CalcularTiempos():void{ _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); _tiempo_siguiente_salto = (((_tiempo_tregua + getTimer()) + _tiempo_minimo_salto) + (Math.random() * _tiempo_margen_salto)); _tiempo_medio_salto = (getTimer() + (((_tiempo_siguiente_salto - getTimer()) / 3) * 2)); } public function Descargar_Caja(){ if (vivo){ trace(("descargar jaula " + tiempo_nacimiento)); vivo = false; VariablesGlobales.motor.eliminarActor(this); if (_es_animal){ VariablesGlobales.motor.animalDescargado(); }; } else { trace(("no esta vivo " + tiempo_nacimiento)); }; } private function ControlLogica():void{ if (_controlar_logica){ if (getTimer() > _tiempo_siguiente_salto){ CalcularTiempos(); Salto(); Sacudir(); MovieClip(_disfraz).gotoAndStop(3); } else { if (getTimer() > _tiempo_medio_salto){ MovieClip(_disfraz).gotoAndStop(2); } else { if (getTimer() > _tiempo_fin_tregua){ MovieClip(_disfraz).gotoAndStop(1); }; }; }; }; } override protected function actualizacionEspecificaHijo():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); } else { CalcularTiempos(); }; super.actualizacionEspecificaHijo(); } } }//package
Section 217
//JaulaTortuga (JaulaTortuga) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class JaulaTortuga extends JaulaActor { var _tiempo_margen_salto:Number;// = 3000 var _tiempo_siguiente_salto:Number;// = 0 var _velocidadMaxima:Number;// = 3 var _tiempo_tregua:Number;// = 2000 var _controlar_logica:Boolean;// = true var _tiempo_medio_salto:Number;// = 0 var _tiempo_minimo_salto:Number;// = 3000 var _tiempo_fin_tregua:Number;// = 0 public function JaulaTortuga(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _tiempo_siguiente_salto = 0; _tiempo_minimo_salto = 3000; _tiempo_margen_salto = 3000; _velocidadMaxima = 3; _tiempo_medio_salto = 0; _tiempo_tregua = 2000; _tiempo_fin_tregua = 0; _controlar_logica = true; _local3 = new Tortuga(); MovieClip(_local3).gotoAndStop(1); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((30 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((30 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0.001; _local4.friction = 100; _local4.restitution = 0; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _fuerzaSalto = 0.004; CalcularTiempos(); _efecto_humo = new turtle_humo(); _arg1.addChild(_efecto_humo); } private function CalcularTiempos():void{ _tiempo_fin_tregua = (getTimer() + _tiempo_tregua); _tiempo_siguiente_salto = (((_tiempo_tregua + getTimer()) + _tiempo_minimo_salto) + (Math.random() * _tiempo_margen_salto)); _tiempo_medio_salto = (getTimer() + (((_tiempo_siguiente_salto - getTimer()) / 3) * 2)); } private function ControlLogica():void{ if (_controlar_logica){ if (cuerpo.GetLinearVelocity().Length() > _velocidadMaxima){ if (getTimer() > _tiempo_siguiente_salto){ CalcularTiempos(); Salto(); Sacudir(); MovieClip(_disfraz).gotoAndStop(3); } else { if (getTimer() > _tiempo_medio_salto){ MovieClip(_disfraz).gotoAndStop(2); } else { if (getTimer() > _tiempo_fin_tregua){ MovieClip(_disfraz).gotoAndStop(1); }; }; }; } else { MovieClip(_disfraz).gotoAndStop(1); CalcularTiempos(); }; }; } override protected function actualizacionEspecificaHijo():void{ if (!CamionActor(VariablesGlobales.motor.objetivoCamara).almacen_carga){ ControlLogica(); } else { CalcularTiempos(); }; super.actualizacionEspecificaHijo(); } } }//package
Section 218
//Jirafa (Jirafa) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Jirafa extends MovieClip { public function Jirafa(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 219
//Leon (Leon) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Leon extends MovieClip { public function Leon(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 220
//LimiteMundo (LimiteMundo) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class LimiteMundo extends Actor { public function LimiteMundo(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:b2Body; var _local4:Sprite; var _local5:b2BodyDef; var _local6:b2PolygonDef; var _local7:Number; var _local8:Number; var _local9:b2Vec2; _local4 = new Sprite(); _arg1.addChild(_local4); _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.userData = this; _local3 = VariablesGlobales.mundo.CreateBody(_local5); _local6 = new b2PolygonDef(); _local6.density = 0; _local6.friction = 1; _local6.restitution = 0; _local8 = ((VariablesGlobales.LADO_TILE / 2) / VariablesGlobales.RATIO); _local7 = (((VariablesGlobales.MAX_ALTO_TILE * VariablesGlobales.LADO_TILE) / 2) / VariablesGlobales.RATIO); _local9 = new b2Vec2((_local8 - (VariablesGlobales.LADO_TILE / VariablesGlobales.RATIO)), _local7); _local6.SetAsOrientedBox(_local8, _local7, _local9, 0); _local3.CreateShape(_local6); _local8 = ((VariablesGlobales.LADO_TILE / 2) / VariablesGlobales.RATIO); _local7 = (((VariablesGlobales.MAX_ALTO_TILE * VariablesGlobales.LADO_TILE) / 2) / VariablesGlobales.RATIO); _local9 = new b2Vec2((_local8 + ((VariablesGlobales.LADO_TILE * VariablesGlobales.MAX_ANCHO_TILE) / VariablesGlobales.RATIO)), _local7); _local6.SetAsOrientedBox(_local8, _local7, _local9, 0); _local3.CreateShape(_local6); _local8 = (((VariablesGlobales.MAX_ANCHO_TILE * VariablesGlobales.LADO_TILE) / 2) / VariablesGlobales.RATIO); _local7 = ((VariablesGlobales.LADO_TILE / 2) / VariablesGlobales.RATIO); _local9 = new b2Vec2(_local8, (_local7 - (VariablesGlobales.LADO_TILE / VariablesGlobales.RATIO))); _local6.SetAsOrientedBox(_local8, _local7, _local9, 0); _local3.CreateShape(_local6); _local8 = (((VariablesGlobales.MAX_ANCHO_TILE * VariablesGlobales.LADO_TILE) / 2) / VariablesGlobales.RATIO); _local7 = ((VariablesGlobales.LADO_TILE / 2) / VariablesGlobales.RATIO); _local9 = new b2Vec2(_local8, (_local7 + ((VariablesGlobales.LADO_TILE * VariablesGlobales.MAX_ALTO_TILE) / VariablesGlobales.RATIO))); _local6.SetAsOrientedBox(_local8, _local7, _local9, 0); _local3.CreateShape(_local6); _local3.SetMassFromShapes(); super(_local3, _local4); } } }//package
Section 221
//lion_humo (lion_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class lion_humo extends MovieClip { public function lion_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 222
//loadingscreen (loadingscreen) package { import flash.display.*; public dynamic class loadingscreen extends MovieClip { } }//package
Section 223
//LogicaTiles (LogicaTiles) package { import flash.geom.*; public class LogicaTiles { private var _tilesDB:Array; private var _tilesPop:Array; private var _lista:Array; private var _tilesPush:Array; private var _coordenadasTilesDB:Array; public static const ACEITE_X_3:int = 360; public static const NUEZ_DERECHA:int = 104; public static const ACEITE_X_5:int = 380; public static const SALIDA_CUEVA:int = 113; public static const NORMAL_SUBIDA_X_3:int = 410; public static const ACEITE_X_4:int = 370; public static const NORMAL_SUBIDA_X_5:int = 420; public static const LEON:int = 52; public static const NORMAL_SUBIDA_X_4:int = 415; public static const DELFIN:int = 55; public static const TIERRA_SUBIDA_X_3:int = 300; public static const TIERRA_SUBIDA_X_5:int = 320; public static const AGUILA:int = 51; public static const TIERRA_SUBIDA_X_4:int = 310; public static const AGUA:int = 111; public static const MURCIELAGO_IZQUIERDA:int = 107; public static const BARRO_AREA_X_2:int = 100; public static const CAMION_1:int = 2; public static const CAMION_2:int = 3; public static const CAMION_3:int = 4; public static const CAMION_4:int = 5; public static const CEBRA:int = 53; public static const ROCA:int = 110; public static const TIERRA_X_1:int = 200; public static const TIERRA_X_2:int = 230; public static const PUENTE:int = 102; public static const TIERRA_X_5:int = 290; public static const TIERRA_X_3:int = 250; public static const TIERRA_X_4:int = 280; public static const LIMITES_MUNDO:int = 1; public static const ASCENSOR:int = 101; public static const COMIDA:int = 58; public static const INFLUENCIA_AGUA:int = 112; public static const ZONA_DESCARGA:int = 7; public static const MURCIELAGO_DERECHA:int = 108; public static const BARRO_BAJADA_X_2:int = 450; public static const NORMAL_X_1:int = 390; public static const NORMAL_X_3:int = 395; public static const NORMAL_X_4:int = 400; public static const NORMAL_X_5:int = 405; public static const BARRO_X_2:int = 440; public static const ABEJA_DERECHA:int = 106; public static const FIN_BALA:int = 115; public static const ALMACEN:int = 6; public static const CANGREJO:int = 109; public static const NORMAL_BAJADA_X_3:int = 425; public static const TORTUGA:int = 57; public static const NORMAL_BAJADA_X_5:int = 435; public static const BARRO_SUBIDA_X_2:int = 455; public static const MONO:int = 54; public static const ELEFANTE:int = 50; public static const NORMAL_BAJADA_X_4:int = 430; public static const JIRAFA:int = 56; public static const TIERRA_BAJADA_X_3:int = 330; public static const TIERRA_BAJADA_X_4:int = 340; public static const TIERRA_BAJADA_X_5:int = 350; public static const PARED_VERTICAL:int = 116; public static const ENTRADA_CUEVA:int = 114; public static const ABEJA_IZQUIERDA:int = 105; public static const NUEZ_IZQUIERDA:int = 103; public function LogicaTiles(){ _tilesDB = []; _tilesPop = []; _tilesPush = []; _coordenadasTilesDB = []; _tilesDB.push(new Array(LIMITES_MUNDO, LIMITES_MUNDO, LIMITES_MUNDO)); _coordenadasTilesDB.push(new Array(LIMITES_MUNDO, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(CAMION_1, CAMION_1, CAMION_1)); _coordenadasTilesDB.push(new Array(CAMION_1, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(CAMION_2, CAMION_2, CAMION_2)); _coordenadasTilesDB.push(new Array(CAMION_2, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(CAMION_3, CAMION_3, CAMION_3)); _coordenadasTilesDB.push(new Array(CAMION_3, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(CAMION_4, CAMION_4, CAMION_4)); _coordenadasTilesDB.push(new Array(CAMION_4, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(ALMACEN, ALMACEN, ALMACEN)); _coordenadasTilesDB.push(new Array(ALMACEN, [[new Point(0, 0), new Point(300, 0), new Point(300, 60), new Point(0, 60)]])); _tilesDB.push(new Array(ZONA_DESCARGA, ZONA_DESCARGA, ZONA_DESCARGA)); _coordenadasTilesDB.push(new Array(ZONA_DESCARGA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(BARRO_AREA_X_2, BARRO_AREA_X_2, BARRO_AREA_X_2)); _coordenadasTilesDB.push(new Array(BARRO_AREA_X_2, [[new Point(0, 0), new Point(60, 0), new Point(60, 30), new Point(0, 30)]])); _tilesDB.push(new Array(PUENTE, PUENTE, PUENTE)); _coordenadasTilesDB.push(new Array(PUENTE, [[new Point(0, 0), new Point(30, 0), new Point(30, 900), new Point(0, 900)]])); _tilesDB.push(new Array(ASCENSOR, ASCENSOR, ASCENSOR)); _coordenadasTilesDB.push(new Array(ASCENSOR, [[new Point(0, 0), new Point(30, 0), new Point(30, 900), new Point(0, 900)]])); _tilesDB.push(new Array(NUEZ_IZQUIERDA, NUEZ_IZQUIERDA, NUEZ_IZQUIERDA)); _coordenadasTilesDB.push(new Array(COMIDA, [new Point(0, 0)])); _tilesDB.push(new Array(NUEZ_DERECHA, NUEZ_DERECHA, NUEZ_DERECHA)); _coordenadasTilesDB.push(new Array(COMIDA, [new Point(0, 0)])); _tilesDB.push(new Array(ABEJA_IZQUIERDA, ABEJA_IZQUIERDA, ABEJA_IZQUIERDA)); _coordenadasTilesDB.push(new Array(ABEJA_IZQUIERDA, [new Point(0, 0)])); _tilesDB.push(new Array(ABEJA_DERECHA, ABEJA_DERECHA, ABEJA_DERECHA)); _coordenadasTilesDB.push(new Array(ABEJA_DERECHA, [new Point(0, 0)])); _tilesDB.push(new Array(MURCIELAGO_IZQUIERDA, MURCIELAGO_IZQUIERDA, MURCIELAGO_IZQUIERDA)); _coordenadasTilesDB.push(new Array(MURCIELAGO_IZQUIERDA, [new Point(0, 0)])); _tilesDB.push(new Array(MURCIELAGO_DERECHA, MURCIELAGO_DERECHA, MURCIELAGO_DERECHA)); _coordenadasTilesDB.push(new Array(MURCIELAGO_DERECHA, [new Point(0, 0)])); _tilesDB.push(new Array(CANGREJO, CANGREJO, CANGREJO)); _coordenadasTilesDB.push(new Array(CANGREJO, [new Point(0, 0)])); _tilesDB.push(new Array(ROCA, ROCA, ROCA)); _coordenadasTilesDB.push(new Array(ROCA, [new Point(0, 0)])); _tilesDB.push(new Array(AGUA, AGUA, AGUA)); _coordenadasTilesDB.push(new Array(AGUA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(INFLUENCIA_AGUA, INFLUENCIA_AGUA, INFLUENCIA_AGUA)); _coordenadasTilesDB.push(new Array(INFLUENCIA_AGUA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(SALIDA_CUEVA, SALIDA_CUEVA, SALIDA_CUEVA)); _coordenadasTilesDB.push(new Array(SALIDA_CUEVA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(ENTRADA_CUEVA, ENTRADA_CUEVA, ENTRADA_CUEVA)); _coordenadasTilesDB.push(new Array(ENTRADA_CUEVA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(FIN_BALA, FIN_BALA, FIN_BALA)); _coordenadasTilesDB.push(new Array(FIN_BALA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(PARED_VERTICAL, PARED_VERTICAL, PARED_VERTICAL)); _coordenadasTilesDB.push(new Array(PARED_VERTICAL, [[new Point(0, 0), new Point(30, 0), new Point(30, 300), new Point(0, 300)]])); _tilesDB.push(new Array(ELEFANTE, ELEFANTE, ELEFANTE)); _coordenadasTilesDB.push(new Array(ELEFANTE, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(AGUILA, AGUILA, AGUILA)); _coordenadasTilesDB.push(new Array(AGUILA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(LEON, LEON, LEON)); _coordenadasTilesDB.push(new Array(LEON, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(CEBRA, CEBRA, CEBRA)); _coordenadasTilesDB.push(new Array(CEBRA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(MONO, MONO, MONO)); _coordenadasTilesDB.push(new Array(MONO, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(DELFIN, DELFIN, DELFIN)); _coordenadasTilesDB.push(new Array(DELFIN, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(JIRAFA, JIRAFA, JIRAFA)); _coordenadasTilesDB.push(new Array(JIRAFA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(TORTUGA, TORTUGA, TORTUGA)); _coordenadasTilesDB.push(new Array(LEON, [[new Point(0, 0), new Point(45, 0), new Point(45, 45), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(COMIDA, COMIDA, COMIDA)); _coordenadasTilesDB.push(new Array(COMIDA, [[new Point(0, 0), new Point(30, 0), new Point(30, 15), new Point(20, 30), new Point(10, 30), new Point(0, 15)]])); _tilesDB.push(new Array(TIERRA_X_1, 200, 229)); _coordenadasTilesDB.push(new Array(TIERRA_X_1, [[new Point(0, 0), new Point(30, 0), new Point(30, 30), new Point(0, 30)]])); _tilesDB.push(new Array(TIERRA_X_2, 230, 249)); _coordenadasTilesDB.push(new Array(TIERRA_X_2, [[new Point(0, 0), new Point(60, 0), new Point(60, 30), new Point(0, 30)]])); _tilesDB.push(new Array(TIERRA_X_3, 250, 279)); _coordenadasTilesDB.push(new Array(TIERRA_X_3, [[new Point(0, 0), new Point(90, 0), new Point(90, 30), new Point(0, 30)]])); _tilesDB.push(new Array(TIERRA_X_4, 280, 289)); _coordenadasTilesDB.push(new Array(TIERRA_X_4, [[new Point(0, 0), new Point(120, 0), new Point(120, 30), new Point(0, 30)]])); _tilesDB.push(new Array(TIERRA_X_5, 290, 299)); _coordenadasTilesDB.push(new Array(TIERRA_X_5, [[new Point(0, 0), new Point(150, 0), new Point(150, 30), new Point(0, 30)]])); _tilesDB.push(new Array(TIERRA_SUBIDA_X_3, 300, 309)); _coordenadasTilesDB.push(new Array(TIERRA_SUBIDA_X_3, [[new Point(0, 30), new Point(90, 0), new Point(90, 30)]])); _tilesDB.push(new Array(TIERRA_SUBIDA_X_4, 310, 319)); _coordenadasTilesDB.push(new Array(TIERRA_SUBIDA_X_4, [[new Point(0, 30), new Point(120, 0), new Point(120, 30)]])); _tilesDB.push(new Array(TIERRA_SUBIDA_X_5, 320, 329)); _coordenadasTilesDB.push(new Array(TIERRA_SUBIDA_X_5, [[new Point(0, 30), new Point(150, 0), new Point(150, 30)]])); _tilesDB.push(new Array(TIERRA_BAJADA_X_3, 330, 339)); _coordenadasTilesDB.push(new Array(TIERRA_BAJADA_X_3, [[new Point(0, 0), new Point(90, 30), new Point(0, 30)]])); _tilesDB.push(new Array(TIERRA_BAJADA_X_4, 340, 349)); _coordenadasTilesDB.push(new Array(TIERRA_BAJADA_X_4, [[new Point(0, 0), new Point(120, 30), new Point(0, 30)]])); _tilesDB.push(new Array(TIERRA_BAJADA_X_5, 350, 359)); _coordenadasTilesDB.push(new Array(TIERRA_BAJADA_X_5, [[new Point(0, 0), new Point(150, 30), new Point(0, 30)]])); _tilesDB.push(new Array(BARRO_X_2, 440, 449)); _coordenadasTilesDB.push(new Array(BARRO_X_2, [[new Point(0, 7), new Point(60, 7), new Point(60, 30), new Point(0, 30)]])); _tilesDB.push(new Array(BARRO_BAJADA_X_2, 450, 454)); _coordenadasTilesDB.push(new Array(BARRO_BAJADA_X_2, [[new Point(0, 0), new Point(60, 7), new Point(60, 30), new Point(0, 30)]])); _tilesDB.push(new Array(BARRO_SUBIDA_X_2, 455, 459)); _coordenadasTilesDB.push(new Array(BARRO_SUBIDA_X_2, [[new Point(0, 7), new Point(60, 0), new Point(60, 30), new Point(0, 30)]])); _tilesDB.push(new Array(ACEITE_X_3, 360, 369)); _coordenadasTilesDB.push(new Array(ACEITE_X_3, [[new Point(0, 0), new Point(90, 0), new Point(90, 30), new Point(0, 30)]])); _tilesDB.push(new Array(ACEITE_X_4, 370, 379)); _coordenadasTilesDB.push(new Array(ACEITE_X_4, [[new Point(0, 0), new Point(120, 0), new Point(120, 30), new Point(0, 30)]])); _tilesDB.push(new Array(ACEITE_X_5, 380, 389)); _coordenadasTilesDB.push(new Array(ACEITE_X_5, [[new Point(0, 0), new Point(150, 0), new Point(150, 30), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_X_1, 390, 394)); _coordenadasTilesDB.push(new Array(NORMAL_X_1, [[new Point(0, 0), new Point(30, 0), new Point(30, 30), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_X_3, 395, 399)); _coordenadasTilesDB.push(new Array(NORMAL_X_3, [[new Point(0, 0), new Point(90, 0), new Point(90, 30), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_X_4, 400, 404)); _coordenadasTilesDB.push(new Array(NORMAL_X_4, [[new Point(0, 0), new Point(120, 0), new Point(120, 30), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_X_5, 405, 409)); _coordenadasTilesDB.push(new Array(NORMAL_X_5, [[new Point(0, 0), new Point(150, 0), new Point(150, 30), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_SUBIDA_X_3, 410, 414)); _coordenadasTilesDB.push(new Array(NORMAL_SUBIDA_X_3, [[new Point(0, 0), new Point(90, 0), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_SUBIDA_X_4, 415, 419)); _coordenadasTilesDB.push(new Array(NORMAL_SUBIDA_X_4, [[new Point(0, 0), new Point(120, 0), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_SUBIDA_X_5, 420, 424)); _coordenadasTilesDB.push(new Array(NORMAL_SUBIDA_X_5, [[new Point(0, 0), new Point(150, 0), new Point(0, 30)]])); _tilesDB.push(new Array(NORMAL_BAJADA_X_3, 425, 429)); _coordenadasTilesDB.push(new Array(NORMAL_BAJADA_X_3, [[new Point(0, 0), new Point(90, 0), new Point(90, 30)]])); _tilesDB.push(new Array(NORMAL_BAJADA_X_4, 430, 434)); _coordenadasTilesDB.push(new Array(NORMAL_BAJADA_X_4, [[new Point(0, 0), new Point(120, 0), new Point(120, 30)]])); _tilesDB.push(new Array(NORMAL_BAJADA_X_5, 435, 439)); _coordenadasTilesDB.push(new Array(NORMAL_BAJADA_X_5, [[new Point(0, 0), new Point(150, 0), new Point(150, 30)]])); Agregar_Indice(_tilesPop, 200, 299); Agregar_Indice(_tilesPush, 500, 199); } public function get lista():Array{ return (_lista); } public function set lista(_arg1:Array):void{ _lista = _arg1; } private function Agregar_Indice(_arg1:Array, _arg2:int, _arg3:int=1){ var _local4:int; _local4 = 0; while (_local4 < _arg3) { _arg1.push(_arg2); _arg2 = (_arg2 + 1); _local4++; }; } public function tileDisponible(_arg1:int):Boolean{ var _local2:Boolean; var _local3:int; _local2 = false; _local3 = 0; for (;_local3 < _tilesDB.length;_local3++) { if (_tilesDB[_local3][0] == _arg1){ _local2 = true; continue; } else { if ((((_arg1 >= _tilesDB[_local3][1])) && ((_arg1 <= _tilesDB[_local3][2])))){ _local2 = true; continue; }; }; }; return (_local2); } public function tipoLogicaTile(_arg1:int):Number{ var _local2:int; var _local3:int; _local2 = 0; _local3 = 0; for (;_local3 < _tilesDB.length;_local3++) { if (_tilesDB[_local3][0] == _arg1){ _local2 = _tilesDB[_local3][0]; continue; } else { if ((((_arg1 >= _tilesDB[_local3][1])) && ((_arg1 <= _tilesDB[_local3][2])))){ _local2 = _tilesDB[_local3][0]; continue; }; }; }; return (_local2); } public function traerAlFrente(_arg1:int):Boolean{ var _local2:Boolean; _local2 = false; if (_tilesPop.indexOf(_arg1) >= 0){ _local2 = true; }; return (_local2); } public function coordenadasLogicaTile(_arg1:int):Array{ var _local2:Array; var _local3:int; _local2 = []; _local3 = 0; while (_local3 < _coordenadasTilesDB.length) { if (_coordenadasTilesDB[_local3][0] == _arg1){ _local2 = _coordenadasTilesDB[_local3][1]; return (_local2); }; _local3++; }; return (_local2); } public function enviarAlFondo(_arg1:int):Boolean{ var _local2:Boolean; _local2 = false; if (_tilesPush.indexOf(_arg1) >= 0){ _local2 = true; }; return (_local2); } } }//package
Section 224
//logro (logro) package { import flash.media.*; public dynamic class logro extends Sound { } }//package
Section 225
//Logros (Logros) package { import flash.display.*; import flash.events.*; public class Logros extends MovieClip { public var achi12:MovieClip; public var achi13:MovieClip; public var achi14:MovieClip; public var achi6:MovieClip; public var achi8:MovieClip; public var achi15:MovieClip; public var achi16:MovieClip; public var achi19:MovieClip; public var achi21:MovieClip; public var achi22:MovieClip; public var achi24:MovieClip; public var achi23:MovieClip; public var achi7:MovieClip; public var achi17:MovieClip; public var achi11:MovieClip; public var achi18:MovieClip; public var achi10:MovieClip; public var achi20:MovieClip; public var salir:SimpleButton; public var main_class:MovieClip; public var desc:MovieClip; public var achi1:MovieClip; public var achi2:MovieClip; public var achi4:MovieClip; public var achi5:MovieClip; public var achi9:MovieClip; public var achi3:MovieClip; public function Logros(){ salir.addEventListener(MouseEvent.CLICK, on_button_clicked); EstadoLogros(); } private function EstadoLogros():void{ achi1.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(1); achi2.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(2); achi3.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(3); achi4.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(4); achi5.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(5); achi6.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(6); achi7.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(7); achi8.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(8); achi9.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(9); achi10.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(10); achi11.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(11); achi12.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(12); achi13.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(13); achi14.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(14); achi15.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(15); achi16.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(16); achi17.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(17); achi18.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(18); achi19.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(19); achi20.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(20); achi21.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(21); achi22.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(22); achi23.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(23); achi24.visible = VariablesGlobales.logrosMan.LogroDesbloqueado(24); achi1.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi2.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi3.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi4.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi5.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi6.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi7.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi8.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi9.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi10.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi11.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi12.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi13.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi14.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi15.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi16.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi17.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi18.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi19.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi20.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi21.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi22.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi23.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi24.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move); achi1.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi2.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi3.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi4.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi5.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi6.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi7.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi8.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi9.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi10.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi11.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi12.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi13.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi14.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi15.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi16.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi17.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi18.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi19.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi20.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi21.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi22.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi23.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); achi24.addEventListener(MouseEvent.MOUSE_OUT, on_mouse_out); } private function on_mouse_out(_arg1:MouseEvent):void{ desc.x = -10000; desc.y = -10000; } private function on_mouse_move(_arg1:MouseEvent):void{ var _local2:String; var _local3:int; _local2 = _arg1.currentTarget.name; _local3 = int(_local2.slice(4, 6)); desc.gotoAndStop(_local3); desc.x = _arg1.currentTarget.x; desc.y = _arg1.currentTarget.y; } public function on_button_clicked(_arg1:MouseEvent){ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.currentTarget.name){ case "salir": main_class.cierra_pantalla(this); break; default: trace((_arg1.target.name + " UNDEFINED")); break; }; } } }//package
Section 226
//ManagerLogros (ManagerLogros) package { import flash.display.*; import flash.utils.*; import flash.events.*; import gs.*; public class ManagerLogros { public var matrizLogrosInicial:Array; private var _colaLogros:Array; private var _matrizLogros:Array; private var _mostrandoLogro:Boolean;// = false private var panelAchi:achipopups; private var muertePanel:Timer; private var timerLogros:Timer; public var main_class:MovieClip; public static const SWAMP_CREATURE:int = 15; public static const OVERFLOW:int = 10; public static const GO_GO_GO:int = 7; public static const NAKASONE_BRIDGE:int = 17; public static const HUNTING_LODGE:int = 9; public static const JUST_IN_TIME:int = 12; public static const SOMETHING_FORGOTTEN:int = 6; public static const BEAUTIFUL_PLACE:int = 14; public static const WATER_CRATE:int = 3; public static const LOSER:int = 5; public static const LION_KING:int = 11; public static const UNDECIDED:int = 13; public static const EMPLOYEES:int = 2; public static const FREE_DOLPHIN:int = 8; public static const BOSS:int = 1; public static const ANIMAL_THROWER:int = 4; public static const TOY_CAR:int = 16; public static const WORK_DONE:int = 18; public function ManagerLogros(){ _matrizLogros = [0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]; matrizLogrosInicial = [0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]; _colaLogros = []; _mostrandoLogro = false; timerLogros = new Timer(1000, 1); super(); trace("inicia manager logros"); _matrizLogros = [0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]; timerLogros.addEventListener(TimerEvent.TIMER_COMPLETE, timerComplete); timerLogros.start(); } private function on_finish_timer(_arg1:TimerEvent):void{ muertePanel.removeEventListener(TimerEvent.TIMER_COMPLETE, on_finish_timer); TweenLite.to(panelAchi, 3, {alpha:0, onComplete:onFinishTween}); } function onFinishTween():void{ trace("mostrando logro = false"); _mostrandoLogro = false; } private function timerComplete(_arg1:TimerEvent):void{ timerLogros.start(); if ((((_colaLogros.length > 0)) && ((_mostrandoLogro == false)))){ mostrarLogro(_colaLogros.splice(0, 1)); }; } private function mostrarLogro(_arg1:int):void{ _mostrandoLogro = true; trace("mostrando logro = true"); panelAchi = new achipopups(); panelAchi.gotoAndStop(_arg1); panelAchi.mouseEnabled = false; panelAchi.mouseChildren = false; panelAchi.x = 0; panelAchi.y = 450; main_class.parent.addChild(panelAchi); muertePanel = new Timer(3000, 1); muertePanel.addEventListener(TimerEvent.TIMER_COMPLETE, on_finish_timer); muertePanel.start(); VariablesGlobales.SoundMan.playSound("logro", 1, 0, 0); } public function DesbloquearLogro(_arg1:int, _arg2:DisplayObjectContainer){ if (_matrizLogros[_arg1] == false){ trace((("logro " + _arg1) + " desbloqueado")); _matrizLogros[_arg1] = true; VariablesGlobales.savegameMan.salvarPartida(); _colaLogros.push(_arg1); }; } public function LogroDesbloqueado(_arg1:int):Boolean{ var _local2:Boolean; _local2 = false; _local2 = _matrizLogros[_arg1]; return (_local2); } public function set matrizLogros(_arg1:Array):void{ _matrizLogros = _arg1; } public function get matrizLogros():Array{ return (_matrizLogros); } } }//package
Section 227
//ManagerPartidas (ManagerPartidas) package { import flash.net.*; public class ManagerPartidas { var so:SharedObject; public function ManagerPartidas(){ so = SharedObject.getLocal("ZooTransport_test"); super(); cargarPartida(); } public function borrarPartida(){ iniciaPartida(); volcarDatos(); salvarPartida(); } public function cargarPartida(){ if (so.data.inicializados == undefined){ trace("inicializar savegame"); iniciaPartida(); } else { trace("cargar savegame"); }; volcarDatos(); } public function salvarPartida(){ so.data.inicializados = true; so.data.musica = VariablesGlobales.MusicMan.Activo; so.data.sonido = VariablesGlobales.SoundMan.Activo; so.data.misionMaxima = VariablesGlobales.indiceNivelMaximo; so.data.tutoriales = VariablesGlobales.mostrarAyuda; so.data.logros = VariablesGlobales.logrosMan.matrizLogros; so.flush(); } private function volcarDatos():void{ VariablesGlobales.MusicMan.Activo = so.data.musica; VariablesGlobales.SoundMan.Activo = so.data.sonido; VariablesGlobales.indiceNivelMaximo = so.data.misionMaxima; VariablesGlobales.mostrarAyuda = so.data.tutoriales; VariablesGlobales.logrosMan.matrizLogros = so.data.logros; } private function iniciaPartida(){ so.data.inicializados = new Boolean(true); so.data.musica = true; so.data.sonido = true; so.data.misionMaxima = 1; so.data.tutoriales = true; so.data.logros = VariablesGlobales.logrosMan.matrizLogrosInicial; } } }//package
Section 228
//menuBombas (menuBombas) package { import flash.display.*; public dynamic class menuBombas extends MovieClip { } }//package
Section 229
//menuCargar (menuCargar) package { import flash.display.*; import flash.text.*; public dynamic class menuCargar extends MovieClip { public var boton_salir_cargar:SimpleButton; public var boton_cargar_nivel:SimpleButton; public var nivel_cargar:TextField; } }//package
Section 230
//menuCatalogoTiles (menuCatalogoTiles) package { import fl.controls.*; import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class menuCatalogoTiles extends MovieClip { public var turnos:NumericStepper; public var boton_goma:SimpleButton; public var boton_matriz:SimpleButton; public var info_fondo:TextField; public var bomba_03:MovieClip; public var bomba_05:MovieClip; public var bomba_08:MovieClip; public var boton_guardar:SimpleButton; public var bomba_01:MovieClip; public var bomba_07:MovieClip; public var bomba_04:MovieClip; public var boton_solidos:MovieClip; public var boton_no_solidos:MovieClip; public var bomba_06:MovieClip; public var lista:TileList; public var boton_matriz2:MovieClip; public var boton_goma2:MovieClip; public var boton_ordenar:MovieClip; public var boton_comunes:MovieClip; public var bomba_02:MovieClip; public var fondo_txt:TextField; public var boton_probar:SimpleButton; public var boton_borrar_todo:SimpleButton; public var boton_ayuda:SimpleButton; public var boton_salir:SimpleButton; public var boton_cargar:SimpleButton; public function menuCatalogoTiles(){ __setProp_turnos_menuCatalogoTiles_botonesbombas_1(); } function __setProp_turnos_menuCatalogoTiles_botonesbombas_1(){ try { turnos["componentInspectorSetting"] = true; } catch(e:Error) { }; turnos.enabled = true; turnos.maximum = 99; turnos.minimum = 1; turnos.stepSize = 1; turnos.value = 0; turnos.visible = true; try { turnos["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 231
//menuEnJuego (menuEnJuego) package { import flash.display.*; import flash.text.*; public dynamic class menuEnJuego extends MovieClip { public var num_cajas:MovieClip; public var musica:MovieClip; public var solucion:SimpleButton; public var reiniciar:SimpleButton; public var salir:SimpleButton; public var retroceder:SimpleButton; public var info:TextField; public var carga:MovieClip; public var avanzar:SimpleButton; public var nom_nivel:MovieClip; public var estado_camion:TextField; public var sonido:MovieClip; } }//package
Section 232
//menuGuardar (menuGuardar) package { import flash.display.*; import flash.text.*; public dynamic class menuGuardar extends MovieClip { public var boton_salir_guardar:SimpleButton; public var nivel_guardar:TextField; public var boton_copiar:SimpleButton; public var boton_subir_nivel:SimpleButton; } }//package
Section 233
//menuMinimapa (menuMinimapa) package { import flash.display.*; public dynamic class menuMinimapa extends MovieClip { public var boton_minimizar_minimapa:SimpleButton; public var selector:MovieClip; } }//package
Section 234
//menuMisionCumplida (menuMisionCumplida) package { import flash.display.*; public dynamic class menuMisionCumplida extends MovieClip { public var reintentar_cumplida:SimpleButton; public var siguiente:SimpleButton; public var salir:SimpleButton; public var editar_cumplida:SimpleButton; } }//package
Section 235
//menuMisionFallida (menuMisionFallida) package { import flash.display.*; public dynamic class menuMisionFallida extends MovieClip { public var reintentar_fallida:SimpleButton; public var reiniciar:SimpleButton; public var salir:SimpleButton; public var editar_fallida:SimpleButton; } }//package
Section 236
//Misiones (Misiones) package { import flash.display.*; import flash.events.*; public class Misiones extends MovieClip { private var desbloquear_misiones:int;// = 0 public var check_ayuda:MovieClip; public var borrar_partida:MovieClip; public var musica:MovieClip; public var todos_niveles:MovieClip; public var m10:MovieClip; public var m11:MovieClip; public var m12:MovieClip; public var m13:MovieClip; public var m14:MovieClip; public var m17:MovieClip; public var m18:MovieClip; public var m19:MovieClip; public var m15:MovieClip; public var m1:MovieClip; public var m2:MovieClip; public var m3:MovieClip; public var m6:MovieClip; public var m16:MovieClip; public var m8:MovieClip; public var m22:MovieClip; public var m23:MovieClip; public var m24:MovieClip; public var m25:MovieClip; public var m26:MovieClip; public var m20:MovieClip; public var m9:MovieClip; public var m4:MovieClip; public var m5:MovieClip; public var m27:MovieClip; public var m28:MovieClip; public var m21:MovieClip; public var main_class:MovieClip; public var m7:MovieClip; public var m29:MovieClip; public var salir:SimpleButton; public var m30:MovieClip; public var m31:MovieClip; public var m34:MovieClip; public var m35:MovieClip; public var m36:MovieClip; public var m37:MovieClip; public var m38:MovieClip; public var m39:MovieClip; public var m33:MovieClip; public var m32:MovieClip; public var m40:MovieClip; public var sonido:MovieClip; private var desbloquear_borrar:int;// = 0 public function Misiones(){ desbloquear_misiones = 0; desbloquear_borrar = 0; super(); salir.addEventListener(MouseEvent.CLICK, on_button_clicked); musica.addEventListener(MouseEvent.CLICK, on_button_clicked); sonido.addEventListener(MouseEvent.CLICK, on_button_clicked); todos_niveles.addEventListener(MouseEvent.CLICK, on_button_clicked); borrar_partida.addEventListener(MouseEvent.CLICK, on_button_clicked); check_ayuda.addEventListener(MouseEvent.CLICK, on_button_clicked); if (VariablesGlobales.mostrarAyuda){ check_ayuda.gotoAndStop(1); } else { check_ayuda.gotoAndStop(2); }; EstadoIconosAudio(); estadoMisiones(); } private function estadoMisiones():void{ var _local1:int; _local1 = VariablesGlobales.indiceNivelMaximo; if (_local1 >= 1){ m1.gotoAndStop(1); m1.buttonMode = true; m1.addEventListener(MouseEvent.CLICK, on_button_clicked); m1.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m1.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m1.gotoAndStop(3); }; if (_local1 >= 2){ m2.gotoAndStop(1); m2.buttonMode = true; m2.addEventListener(MouseEvent.CLICK, on_button_clicked); m2.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m2.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m2.gotoAndStop(3); }; if (_local1 >= 3){ m3.gotoAndStop(1); m3.buttonMode = true; m3.addEventListener(MouseEvent.CLICK, on_button_clicked); m3.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m3.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m3.gotoAndStop(3); }; if (_local1 >= 4){ m4.gotoAndStop(1); m4.buttonMode = true; m4.addEventListener(MouseEvent.CLICK, on_button_clicked); m4.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m4.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m4.gotoAndStop(3); }; if (_local1 >= 5){ m5.gotoAndStop(1); m5.buttonMode = true; m5.addEventListener(MouseEvent.CLICK, on_button_clicked); m5.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m5.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m5.gotoAndStop(3); }; if (_local1 >= 6){ m6.gotoAndStop(1); m6.buttonMode = true; m6.addEventListener(MouseEvent.CLICK, on_button_clicked); m6.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m6.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m6.gotoAndStop(3); }; if (_local1 >= 7){ m7.gotoAndStop(1); m7.buttonMode = true; m7.addEventListener(MouseEvent.CLICK, on_button_clicked); m7.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m7.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m7.gotoAndStop(3); }; if (_local1 >= 8){ m8.gotoAndStop(1); m8.buttonMode = true; m8.addEventListener(MouseEvent.CLICK, on_button_clicked); m8.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m8.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m8.gotoAndStop(3); }; if (_local1 >= 9){ m9.gotoAndStop(1); m9.buttonMode = true; m9.addEventListener(MouseEvent.CLICK, on_button_clicked); m9.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m9.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m9.gotoAndStop(3); }; if (_local1 >= 10){ m10.gotoAndStop(1); m10.buttonMode = true; m10.addEventListener(MouseEvent.CLICK, on_button_clicked); m10.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m10.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m10.gotoAndStop(3); }; if (_local1 >= 11){ m11.gotoAndStop(1); m11.buttonMode = true; m11.addEventListener(MouseEvent.CLICK, on_button_clicked); m11.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m11.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m11.gotoAndStop(3); }; if (_local1 >= 12){ m12.gotoAndStop(1); m12.buttonMode = true; m12.addEventListener(MouseEvent.CLICK, on_button_clicked); m12.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m12.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m12.gotoAndStop(3); }; if (_local1 >= 13){ m13.gotoAndStop(1); m13.buttonMode = true; m13.addEventListener(MouseEvent.CLICK, on_button_clicked); m13.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m13.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m13.gotoAndStop(3); }; if (_local1 >= 14){ m14.gotoAndStop(1); m14.buttonMode = true; m14.addEventListener(MouseEvent.CLICK, on_button_clicked); m14.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m14.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m14.gotoAndStop(3); }; if (_local1 >= 15){ m15.gotoAndStop(1); m15.buttonMode = true; m15.addEventListener(MouseEvent.CLICK, on_button_clicked); m15.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m15.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m15.gotoAndStop(3); }; if (_local1 >= 16){ m16.gotoAndStop(1); m16.buttonMode = true; m16.addEventListener(MouseEvent.CLICK, on_button_clicked); m16.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m16.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m16.gotoAndStop(3); }; if (_local1 >= 17){ m17.gotoAndStop(1); m17.buttonMode = true; m17.addEventListener(MouseEvent.CLICK, on_button_clicked); m17.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m17.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m17.gotoAndStop(3); }; if (_local1 >= 18){ m18.gotoAndStop(1); m18.buttonMode = true; m18.addEventListener(MouseEvent.CLICK, on_button_clicked); m18.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m18.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m18.gotoAndStop(3); }; if (_local1 >= 19){ m19.gotoAndStop(1); m19.buttonMode = true; m19.addEventListener(MouseEvent.CLICK, on_button_clicked); m19.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m19.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m19.gotoAndStop(3); }; if (_local1 >= 20){ m20.gotoAndStop(1); m20.buttonMode = true; m20.addEventListener(MouseEvent.CLICK, on_button_clicked); m20.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m20.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m20.gotoAndStop(3); }; if (_local1 >= 21){ m21.gotoAndStop(1); m21.buttonMode = true; m21.addEventListener(MouseEvent.CLICK, on_button_clicked); m21.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m21.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m21.gotoAndStop(3); }; if (_local1 >= 22){ m22.gotoAndStop(1); m22.buttonMode = true; m22.addEventListener(MouseEvent.CLICK, on_button_clicked); m22.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m22.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m22.gotoAndStop(3); }; if (_local1 >= 23){ m23.gotoAndStop(1); m23.buttonMode = true; m23.addEventListener(MouseEvent.CLICK, on_button_clicked); m23.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m23.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m23.gotoAndStop(3); }; if (_local1 >= 24){ m24.gotoAndStop(1); m24.buttonMode = true; m24.addEventListener(MouseEvent.CLICK, on_button_clicked); m24.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m24.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m24.gotoAndStop(3); }; if (_local1 >= 25){ m25.gotoAndStop(1); m25.buttonMode = true; m25.addEventListener(MouseEvent.CLICK, on_button_clicked); m25.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m25.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m25.gotoAndStop(3); }; if (_local1 >= 26){ m26.gotoAndStop(1); m26.buttonMode = true; m26.addEventListener(MouseEvent.CLICK, on_button_clicked); m26.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m26.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m26.gotoAndStop(3); }; if (_local1 >= 27){ m27.gotoAndStop(1); m27.buttonMode = true; m27.addEventListener(MouseEvent.CLICK, on_button_clicked); m27.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m27.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m27.gotoAndStop(3); }; if (_local1 >= 28){ m28.gotoAndStop(1); m28.buttonMode = true; m28.addEventListener(MouseEvent.CLICK, on_button_clicked); m28.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m28.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m28.gotoAndStop(3); }; if (_local1 >= 29){ m29.gotoAndStop(1); m29.buttonMode = true; m29.addEventListener(MouseEvent.CLICK, on_button_clicked); m29.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m29.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m29.gotoAndStop(3); }; if (_local1 >= 30){ m30.gotoAndStop(1); m30.buttonMode = true; m30.addEventListener(MouseEvent.CLICK, on_button_clicked); m30.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m30.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m30.gotoAndStop(3); }; if (_local1 >= 31){ m31.gotoAndStop(1); m31.buttonMode = true; m31.addEventListener(MouseEvent.CLICK, on_button_clicked); m31.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m31.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m31.gotoAndStop(3); }; if (_local1 >= 32){ m32.gotoAndStop(1); m32.buttonMode = true; m32.addEventListener(MouseEvent.CLICK, on_button_clicked); m32.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m32.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m32.gotoAndStop(3); }; if (_local1 >= 33){ m33.gotoAndStop(1); m33.buttonMode = true; m33.addEventListener(MouseEvent.CLICK, on_button_clicked); m33.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m33.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m33.gotoAndStop(3); }; if (_local1 >= 34){ m34.gotoAndStop(1); m34.buttonMode = true; m34.addEventListener(MouseEvent.CLICK, on_button_clicked); m34.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m34.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m34.gotoAndStop(3); }; if (_local1 >= 35){ m35.gotoAndStop(1); m35.buttonMode = true; m35.addEventListener(MouseEvent.CLICK, on_button_clicked); m35.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m35.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m35.gotoAndStop(3); }; if (_local1 >= 36){ m36.gotoAndStop(1); m36.buttonMode = true; m36.addEventListener(MouseEvent.CLICK, on_button_clicked); m36.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m36.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m36.gotoAndStop(3); }; if (_local1 >= 37){ m37.gotoAndStop(1); m37.buttonMode = true; m37.addEventListener(MouseEvent.CLICK, on_button_clicked); m37.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m37.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m37.gotoAndStop(3); }; if (_local1 >= 38){ m38.gotoAndStop(1); m38.buttonMode = true; m38.addEventListener(MouseEvent.CLICK, on_button_clicked); m38.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m38.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m38.gotoAndStop(3); }; if (_local1 >= 39){ m39.gotoAndStop(1); m39.buttonMode = true; m39.addEventListener(MouseEvent.CLICK, on_button_clicked); m39.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m39.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m39.gotoAndStop(3); }; if (_local1 >= 40){ m40.gotoAndStop(1); m40.buttonMode = true; m40.addEventListener(MouseEvent.CLICK, on_button_clicked); m40.addEventListener(MouseEvent.MOUSE_OVER, on_button_over); m40.addEventListener(MouseEvent.ROLL_OUT, on_button_out); } else { m40.gotoAndStop(3); }; } private function abrirMision(_arg1:int):void{ VariablesGlobales.nivelActual = VariablesGlobales.nivelesJuego.datos[_arg1]; VariablesGlobales.indiceNivelActual = _arg1; main_class.abre_pantalla(new PantallaJuego()); main_class.cierra_pantalla(this); } private function EstadoIconosAudio():void{ if (VariablesGlobales.SoundMan.Activo){ sonido.gotoAndStop(1); } else { sonido.gotoAndStop(2); }; if (VariablesGlobales.MusicMan.Activo){ musica.gotoAndStop(1); if (VariablesGlobales.MusicMan.isSoundPaused("principal1")){ VariablesGlobales.MusicMan.playSound("principal1", 0.5, 0, 99); }; } else { musica.gotoAndStop(2); }; } public function on_button_clicked(_arg1:MouseEvent){ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.currentTarget.name){ case "m1": abrirMision(1); break; case "m2": abrirMision(2); break; case "m3": abrirMision(3); break; case "m4": abrirMision(4); break; case "m5": abrirMision(5); break; case "m6": abrirMision(6); break; case "m7": abrirMision(7); break; case "m8": abrirMision(8); break; case "m9": abrirMision(9); break; case "m10": abrirMision(10); break; case "m11": abrirMision(11); break; case "m12": abrirMision(12); break; case "m13": abrirMision(13); break; case "m14": abrirMision(14); break; case "m15": abrirMision(15); break; case "m16": abrirMision(16); break; case "m17": abrirMision(17); break; case "m18": abrirMision(18); break; case "m19": abrirMision(19); break; case "m20": abrirMision(20); break; case "m21": abrirMision(21); break; case "m22": abrirMision(22); break; case "m23": abrirMision(23); break; case "m24": abrirMision(24); break; case "m25": abrirMision(25); break; case "m26": abrirMision(26); break; case "m27": abrirMision(27); break; case "m28": abrirMision(28); break; case "m29": abrirMision(29); break; case "m30": abrirMision(30); break; case "m31": abrirMision(31); break; case "m32": abrirMision(32); break; case "m33": abrirMision(33); break; case "m34": abrirMision(34); break; case "m35": abrirMision(35); break; case "m36": abrirMision(36); break; case "m37": abrirMision(37); break; case "m38": abrirMision(38); break; case "m39": abrirMision(39); break; case "m40": abrirMision(40); break; case "check_ayuda": VariablesGlobales.mostrarAyuda = !(VariablesGlobales.mostrarAyuda); if (VariablesGlobales.mostrarAyuda){ check_ayuda.gotoAndStop(1); } else { check_ayuda.gotoAndStop(2); }; VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.NO_HELP, main_class); VariablesGlobales.savegameMan.salvarPartida(); break; case "salir": main_class.abre_pantalla(new Principal()); main_class.cierra_pantalla(this); break; case "musica": VariablesGlobales.MusicMan.Mute(); EstadoIconosAudio(); break; case "sonido": VariablesGlobales.SoundMan.Mute(); EstadoIconosAudio(); break; case "todos_niveles": desbloquear_misiones = (desbloquear_misiones + 1); if (desbloquear_misiones > 5){ VariablesGlobales.indiceNivelMaximo = 40; trace("unlock"); }; break; case "borrar_partida": desbloquear_borrar = (desbloquear_borrar + 1); if (desbloquear_borrar > 5){ VariablesGlobales.savegameMan.borrarPartida(); trace("borrar"); }; break; default: trace((_arg1.target.name + " UNDEFINED")); break; }; } private function on_button_out(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndStop(1); } private function on_button_over(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndStop(2); } } }//package
Section 237
//monkey_humo (monkey_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class monkey_humo extends MovieClip { public function monkey_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 238
//Mono (Mono) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Mono extends MovieClip { public function Mono(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 239
//motor (motor) package { import flash.media.*; public dynamic class motor extends Sound { } }//package
Section 240
//Motor (Motor) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import gs.*; import General.*; public class Motor extends EventDispatcher { private var _soltarLluviaBombas:Boolean;// = false private var _indiceBombaActual:int; private var _nivel:String; private var _padre:DisplayObjectContainer; private var _direccionObjetivoActual:Point; private var _direccionObjetivo:Point; private var _fondo:MovieClip; private var _anguloObjetivoActual:Number; private var _menuMisionFallida:menuMisionFallida; private var _menuMisionCumplida:menuMisionCumplida; var the_box:b2PolygonDef; private var _interfaz:Sprite; private var _actores:Array; private var _tiempoRetardoBombaLluvia:Number;// = 12 private var _bombasPorSoltar:int; private var usandoMouse:Boolean;// = false var retroceder_downUpState:DisplayObject; private var _nivelCargado:Boolean;// = false private var _actoresABorrar:Array; var avanzar_downUpState:DisplayObject; var bd:b2BodyDef; private var tiempoControlFinalNivel:Number;// = 0 var the_dist_joint:b2DistanceJointDef; var mousePVec:b2Vec2; private var _animalesPorLlevar:int;// = 0 private var _turnos:int;// = 0 var the_pivot:b2CircleDef; private var _mapaAncho:int; private var _debug:Sprite; private var fabrica:FabricaActores; private var _interfazContenedor:Sprite; private var _tiempoRetardo:Number; private var _mapaAlto:int; var avanzar_defaultUpState:DisplayObject; private var numTilesAct:int;// = 0 private var _coordenadaObjetivo:Point; public var camaraInicial:Boolean;// = true private var _tiles:Array; private var _mostrandoTodoElMapa:Boolean;// = false private var _menuEnJuego:menuEnJuego; private var _objetivoCamara:Actor; var the_rev_joint:b2RevoluteJointDef; private var margenTiempoControlFinalNivel:Number;// = 1000 private var _bombasDisponibles:Array; var retroceder_defaultUpState:DisplayObject; var dest_joint:b2DistanceJoint; private var _dialogosEnJuego:dialogosEnJuego; private var _turnosInfinitos:Boolean;// = false private var _lienzo:Sprite; private var _coordenadaSalidaBombardero:Point; private var _temaNivel:int; private var _objetivoFijado:Boolean;// = false private var _sin_sonido:Boolean;// = false private var _turnosInicio; var input:Input; private var _animalesInicioNivel:int;// = 0 private var _lienzoEfectos:Sprite; private var _juegoContenedor:Sprite; private var _bombarderoDisponible:Boolean;// = false var mouseJoint:b2MouseJoint; private var _coordenadaObjetivoActual:Point; public var pausarMundo:Boolean;// = false private var _fondoInterfaz:Sprite; public function Motor(_arg1:DisplayObjectContainer){ _nivelCargado = false; fabrica = new FabricaActores(); camaraInicial = true; _soltarLluviaBombas = false; _tiempoRetardoBombaLluvia = 12; _tiempoRetardo = _tiempoRetardoBombaLluvia; _animalesPorLlevar = 0; _animalesInicioNivel = 0; _turnos = 0; _turnosInfinitos = false; _bombarderoDisponible = false; _objetivoFijado = false; _mostrandoTodoElMapa = false; _bombasDisponibles = []; _sin_sonido = false; numTilesAct = 0; mousePVec = new b2Vec2(); the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); the_dist_joint = new b2DistanceJointDef(); pausarMundo = false; tiempoControlFinalNivel = 0; margenTiempoControlFinalNivel = 1000; usandoMouse = false; super(); _padre = _arg1; } public function createMouse(_arg1:MouseEvent):void{ var _local2:b2Body; var _local3:Number; var _local4:b2MouseJointDef; if (camaraInicial){ _local2 = GetBodyAtMouse(); _local3 = 1; if (CamionActor(objetivoCamara).cuerpo == _local2){ _local3 = 100; if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.TOY_CAR)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.TOY_CAR, VariablesGlobales.contenedorPadre); }; }; if (_local2){ _local4 = new b2MouseJointDef(); _local4.body1 = VariablesGlobales.mundo.GetGroundBody(); _local4.body2 = _local2; _local4.target.Set((_juegoContenedor.mouseX / VariablesGlobales.RATIO), (_juegoContenedor.mouseY / VariablesGlobales.RATIO)); _local4.maxForce = _local3; _local4.timeStep = VariablesGlobales.PASO_TIEMPO; mouseJoint = (VariablesGlobales.mundo.CreateJoint(_local4) as b2MouseJoint); }; }; } private function manejarMouseDownMenuEnJuego(_arg1:MouseEvent):void{ switch (_arg1.currentTarget.name){ case "avanzar": usandoMouse = true; camaraInicial = false; CamionActor(objetivoCamara).avanzar = true; break; case "retroceder": usandoMouse = true; camaraInicial = false; CamionActor(objetivoCamara).retroceder = true; break; default: trace((_arg1.currentTarget.name + " no definido menu en juego")); }; } private function controlSeguimientoCamara():void{ if (_objetivoCamara != null){ if (CamionActor(_objetivoCamara).almacen_carga == true){ VariablesGlobales.camara.irA(new Point(389, (CamionActor(_objetivoCamara).disfraz.y - 150)), 0.5); camaraInicial = true; } else { VariablesGlobales.camara.irA(new Point(_objetivoCamara.disfraz.x, (_objetivoCamara.disfraz.y - 150)), 1); camaraInicial = false; }; }; } private function eliminarObjetosNivel():void{ var _local1:int; _local1 = 0; while (_local1 < _actores.length) { eliminarActor(_actores[_local1]); _local1++; }; eliminarActoresAhora(); _actores = []; _actoresABorrar = []; } private function parsearCadenaNivel(_arg1:String):Boolean{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:Array; var _local6:int; var _local7:int; _local2 = _arg1.split(";"); _local3 = _local2[0].split(","); _mapaAncho = _local3[0]; _mapaAlto = _local3[1]; _temaNivel = _local3[2]; _animalesPorLlevar = _local3[3]; _animalesInicioNivel = _animalesPorLlevar; _turnos = 1; _turnosInicio = _turnos; _bombasDisponibles = [false, false, false, false, false, false, false, false, false]; if (_local3[4] == 1){ _bombasDisponibles[1] = true; }; if (_local3[5] == 1){ _bombasDisponibles[2] = true; }; if (_local3[6] == 1){ _bombasDisponibles[3] = true; }; if (_local3[8] == 1){ _bombasDisponibles[5] = true; }; if (_local3[9] == 1){ _bombasDisponibles[6] = true; }; _local4 = _local2[1].split("|"); _local5 = []; _tiles = new Array(_mapaAncho); numTilesAct = 0; _local6 = 0; while (_local6 < _local4.length) { _local5 = _local4[_local6].split(","); _tiles[_local6] = new Array(_local5.length); _local7 = 0; while (_local7 < _local5.length) { if (_local5[_local7] == ""){ _local5[_local7] = 0; } else { numTilesAct = (numTilesAct + 1); }; _tiles[_local6][_local7] = _local5[_local7]; _local7++; }; _local6++; }; trace(("Animales por salvar " + _animalesPorLlevar)); return (true); } public function get juegoContenedor():Sprite{ return (_juegoContenedor); } public function set objetivoCamara(_arg1:Actor):void{ _objetivoCamara = _arg1; } private function manejarMouseUpMenuEnJuego(_arg1:MouseEvent):void{ switch (_arg1.currentTarget.name){ case "avanzar": usandoMouse = false; break; case "retroceder": usandoMouse = false; break; default: trace((_arg1.currentTarget.name + " no definido menu en juego")); }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local2:*; var _local3:*; var _local4:b2AABB; var _local5:int; var _local6:Array; var _local7:int; var _local8:b2Body; var _local9:int; var _local10:b2Shape; var _local11:Boolean; _local2 = (_juegoContenedor.mouseX / VariablesGlobales.RATIO); _local3 = (_juegoContenedor.mouseY / VariablesGlobales.RATIO); mousePVec.Set(_local2, _local3); _local4 = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); _local5 = 10; _local6 = new Array(); _local7 = VariablesGlobales.mundo.Query(_local4, _local6, _local5); _local8 = null; _local9 = 0; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; return (_local8); } private function configuraMenus():void{ cargarInterfaz(); } public function abandonarNivel(){ descargarNivel(); } private function EstadoIconosAudio():void{ _sin_sonido = false; if (VariablesGlobales.SoundMan.Activo){ _menuEnJuego.sonido.gotoAndStop(1); } else { _menuEnJuego.sonido.gotoAndStop(2); }; if (VariablesGlobales.MusicMan.Activo){ _menuEnJuego.musica.gotoAndStop(1); if (VariablesGlobales.MusicMan.isSoundPaused("ingame1")){ VariablesGlobales.MusicMan.playSound("ingame1", 0.5, 0, 99); }; } else { _menuEnJuego.musica.gotoAndStop(2); }; } private function inicializaMundo():void{ var _local1:b2AABB; var _local2:b2Vec2; var _local3:Boolean; var _local4:b2DebugDraw; _local1 = new b2AABB(); VariablesGlobales.limitesMundo = new Rectangle(); VariablesGlobales.limitesMundo.topLeft = new Point((-(VariablesGlobales.LADO_TILE) * 40), (-(VariablesGlobales.LADO_TILE) * 20)); VariablesGlobales.limitesMundo.bottomRight = new Point(((_mapaAncho * VariablesGlobales.LADO_TILE) + (VariablesGlobales.LADO_TILE * 40)), ((_mapaAlto * VariablesGlobales.LADO_TILE) + (VariablesGlobales.LADO_TILE * 10))); _local1.lowerBound.Set((VariablesGlobales.limitesMundo.topLeft.x / VariablesGlobales.RATIO), (VariablesGlobales.limitesMundo.topLeft.y / VariablesGlobales.RATIO)); _local1.upperBound.Set((VariablesGlobales.limitesMundo.bottomRight.x / VariablesGlobales.RATIO), (VariablesGlobales.limitesMundo.bottomRight.y / VariablesGlobales.RATIO)); _local2 = new b2Vec2(0, VariablesGlobales.GRAVEDAD); _local3 = true; VariablesGlobales.mundo = new b2World(_local1, _local2, _local3); VariablesGlobales.mundo.SetContactListener(new ZooTransportContactListener()); _local4 = new b2DebugDraw(); _local4.m_sprite = _debug; _local4.m_drawScale = 30; _local4.m_fillAlpha = 0.3; _local4.m_lineThickness = 1; _local4.m_drawFlags = ((b2DebugDraw.e_coreShapeBit | b2DebugDraw.e_shapeBit) | b2DebugDraw.e_jointBit); VariablesGlobales.mundo.SetDebugDraw(_local4); _debug.visible = false; } public function set juegoContenedor(_arg1:Sprite):void{ _juegoContenedor = _arg1; } private function controlLogicaJuego():void{ var _local1:int; var _local2:int; if (objetivoCamara){ _menuEnJuego.estado_camion.text = (" - lv: " + CamionActor(objetivoCamara).cuerpo.m_linearVelocity.Length()); }; _menuEnJuego.carga.visible = camaraInicial; if (_menuEnJuego.carga.visible){ }; if (VariablesGlobales.tiempo_acelerador > 0){ _local1 = (getTimer() - VariablesGlobales.tiempo_acelerador); if (_local1 > 10000){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.GO_GO_GO)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.GO_GO_GO, VariablesGlobales.contenedorPadre); }; }; }; if (VariablesGlobales.retorno_almacen >= 3){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.UNDECIDED)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.UNDECIDED, VariablesGlobales.contenedorPadre); }; }; if ((((VariablesGlobales.tiempo_quieto > 0)) && ((CamionActor(_objetivoCamara).almacen_carga == false)))){ _local2 = (getTimer() - VariablesGlobales.tiempo_quieto); if (_local2 > 10000){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.BEAUTIFUL_PLACE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.BEAUTIFUL_PLACE, VariablesGlobales.contenedorPadre); }; }; }; if (Input.isKeyPressed(86)){ _debug.visible = !(_debug.visible); }; if ((((pausarMundo == true)) && ((getTimer() > tiempoControlFinalNivel)))){ controlFinalNivel(); }; if (Input.isKeyPressed(39)){ CamionActor(objetivoCamara).avanzar = true; camaraInicial = false; if (_menuEnJuego.avanzar.upState != avanzar_downUpState){ _menuEnJuego.avanzar.upState = avanzar_downUpState; }; } else { if (!usandoMouse){ CamionActor(objetivoCamara).avanzar = false; _menuEnJuego.avanzar.upState = avanzar_defaultUpState; }; }; if (Input.isKeyPressed(37)){ CamionActor(objetivoCamara).retroceder = true; camaraInicial = false; if (_menuEnJuego.retroceder.upState != retroceder_downUpState){ _menuEnJuego.retroceder.upState = retroceder_downUpState; }; } else { if (!usandoMouse){ CamionActor(objetivoCamara).retroceder = false; _menuEnJuego.retroceder.upState = retroceder_defaultUpState; }; }; } public function iniciaMotor(){ _juegoContenedor = new Sprite(); _padre.addChild(_juegoContenedor); input = new Input(Sprite(_juegoContenedor)); _lienzo = new Sprite(); _juegoContenedor.addChild(_lienzo); _lienzoEfectos = new Sprite(); _juegoContenedor.addChild(_lienzoEfectos); _debug = new Sprite(); _juegoContenedor.addChild(_debug); _interfazContenedor = new Sprite(); _padre.addChild(_interfazContenedor); crearAreaInterfaz(); _interfaz = new Sprite(); _interfazContenedor.addChild(_interfaz); VariablesGlobales.camara = new Camara(); VariablesGlobales.camara.iniciaCamara(_juegoContenedor, VariablesGlobales.ALTO_PANTALLA, VariablesGlobales.ANCHO_PANTALLA); _actores = []; _actores = []; _objetivoCamara = null; VariablesGlobales.MusicMan.stopAllSounds(false); VariablesGlobales.MusicMan.playSound("ingame1", 1, 0, 99); } private function cargarInterfaz():void{ _menuEnJuego = new menuEnJuego(); _interfaz.addChild(_menuEnJuego); _menuEnJuego.reiniciar.addEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.salir.addEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.musica.addEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.sonido.addEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.solucion.addEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.avanzar.addEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownMenuEnJuego); _menuEnJuego.retroceder.addEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownMenuEnJuego); _menuEnJuego.avanzar.addEventListener(MouseEvent.MOUSE_UP, manejarMouseUpMenuEnJuego); _menuEnJuego.retroceder.addEventListener(MouseEvent.MOUSE_UP, manejarMouseUpMenuEnJuego); _menuEnJuego.avanzar.addEventListener(MouseEvent.MOUSE_OUT, manejarMouseUpMenuEnJuego); _menuEnJuego.retroceder.addEventListener(MouseEvent.MOUSE_OUT, manejarMouseUpMenuEnJuego); avanzar_defaultUpState = _menuEnJuego.avanzar.upState; avanzar_downUpState = _menuEnJuego.avanzar.downState; retroceder_defaultUpState = _menuEnJuego.retroceder.upState; retroceder_downUpState = _menuEnJuego.retroceder.downState; _menuEnJuego.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); _menuEnJuego.addEventListener(MouseEvent.MOUSE_OUT, destroyMouse); _menuEnJuego.solucion.visible = true; _menuEnJuego.carga.visible = false; EstadoIconosAudio(); _menuMisionFallida = new menuMisionFallida(); _interfaz.addChild(_menuMisionFallida); _menuMisionFallida.visible = false; _menuMisionFallida.reiniciar.addEventListener(MouseEvent.CLICK, manejarClickMisionFallida); _menuMisionFallida.salir.addEventListener(MouseEvent.CLICK, manejarClickMisionFallida); _menuMisionFallida.reintentar_fallida.addEventListener(MouseEvent.CLICK, manejarClickMisionFallida); _menuMisionFallida.editar_fallida.addEventListener(MouseEvent.CLICK, manejarClickMisionFallida); if (VariablesGlobales.nivelPruebaActual == ""){ _menuMisionFallida.reintentar_fallida.visible = false; _menuMisionFallida.editar_fallida.visible = false; }; _menuMisionCumplida = new menuMisionCumplida(); _interfaz.addChild(_menuMisionCumplida); _menuMisionCumplida.visible = false; _menuMisionCumplida.siguiente.addEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); _menuMisionCumplida.salir.addEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); _menuMisionCumplida.reintentar_cumplida.addEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); _menuMisionCumplida.editar_cumplida.addEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); trace((((("Mision nun :" + VariablesGlobales.indiceNivelActual) + " (") + _animalesPorLlevar) + ")")); if (VariablesGlobales.nivelPruebaActual == ""){ _menuMisionCumplida.reintentar_cumplida.visible = false; _menuMisionCumplida.editar_cumplida.visible = false; _menuEnJuego.nom_nivel.gotoAndStop(VariablesGlobales.indiceNivelActual); }; _menuEnJuego.num_cajas.gotoAndStop(_animalesPorLlevar); } private function manejarClickMisionFallida(_arg1:MouseEvent):void{ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.currentTarget.name){ case "reiniciar": _menuMisionFallida.visible = false; this.dispatchEvent(new MotorEvent(MotorEvent.REINICIAR_NIVEL)); break; case "salir": this.dispatchEvent(new MotorEvent(MotorEvent.SALIR_NIVEL)); break; case "reintentar_fallida": _menuMisionFallida.visible = false; this.dispatchEvent(new MotorEvent(MotorEvent.REINICIAR_NIVEL)); break; case "editar_fallida": this.dispatchEvent(new MotorEvent(MotorEvent.SALIR_NIVEL)); break; default: trace((_arg1.currentTarget.name + " no definido menu misin fallida")); }; } private function controlFinalNivel():void{ if (_animalesPorLlevar > 0){ if (_menuMisionFallida.visible == false){ _menuMisionFallida.visible = true; VariablesGlobales.SoundMan.playSound("cuervos", 1, 0); }; } else { if (_menuMisionCumplida.visible == false){ _menuMisionCumplida.visible = true; VariablesGlobales.SoundMan.playSound("estrellas", 1, 0); if (VariablesGlobales.indiceNivelActual == VariablesGlobales.indiceNivelMaximo){ VariablesGlobales.indiceNivelMaximo = (VariablesGlobales.indiceNivelMaximo + 1); }; }; }; if (_animalesInicioNivel == _animalesPorLlevar){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.SOMETHING_FORGOTTEN)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.SOMETHING_FORGOTTEN, VariablesGlobales.contenedorPadre); }; }; if (_animalesPorLlevar < 0){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.OVERFLOW)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.OVERFLOW, VariablesGlobales.contenedorPadre); }; }; if ((((_animalesPorLlevar == (_animalesInicioNivel - 1))) && (VariablesGlobales.leon_transportado))){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.LION_KING)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.LION_KING, VariablesGlobales.contenedorPadre); }; }; } public function actualiza(){ var _local1:Actor; var _local2:*; var _local3:*; var _local4:b2Vec2; if (VariablesGlobales.mundo != null){ VariablesGlobales.mundo.Step(VariablesGlobales.PASO_TIEMPO, 10); if (mouseJoint){ CamionActor(objetivoCamara).punto_muerto = true; _local2 = (_juegoContenedor.mouseX / VariablesGlobales.RATIO); _local3 = (_juegoContenedor.mouseY / VariablesGlobales.RATIO); _local4 = new b2Vec2(_local2, _local3); mouseJoint.SetTarget(_local4); } else { CamionActor(objetivoCamara).punto_muerto = false; }; for each (_local1 in _actores) { _local1.actualizaAhora(); }; eliminarActoresAhora(); VariablesGlobales.mundo.DrawDebugData(); controlSeguimientoCamara(); controlLogicaJuego(); }; } private function manejarClickJuego(_arg1:MouseEvent):void{ } public function get objetivoCamara():Actor{ return (_objetivoCamara); } public function finalizaMotor(){ descargarNivel(); _padre.removeChild(_juegoContenedor); _juegoContenedor.removeChild(_lienzo); _juegoContenedor.removeChild(_lienzoEfectos); _juegoContenedor.removeChild(_debug); eliminarAreaInterfaz(); _padre.removeChild(_interfazContenedor); crearAreaInterfaz(); _interfazContenedor.removeChild(_interfaz); } public function pausarNivel(){ } private function traerAlFrenteJaulas():void{ var _local1:int; _local1 = 0; while (_local1 < _actores.length) { if ((((Actor(_actores[_local1]).indice >= 50)) && ((Actor(_actores[_local1]).indice <= 60)))){ _lienzo.setChildIndex(Actor(_actores[_local1]).disfraz, (_lienzo.numChildren - 1)); }; _local1++; }; } public function reiniciarNivel(){ descargarNivel(); cargarNivel(); ejecutarNivel(); } private function inicializaDatosPartida():void{ pausarMundo = false; _bombarderoDisponible = true; _bombasPorSoltar = 0; _soltarLluviaBombas = false; camaraInicial = true; VariablesGlobales.IndiceCaja = 0; } public function descargarNivel(){ descargarInterfaz(); descargarFondo(); eliminarObjetosNivel(); } private function crearAreaInterfaz():void{ _fondoInterfaz = new Sprite(); _interfazContenedor.addChild(_fondoInterfaz); _fondoInterfaz.graphics.lineStyle(0, 0xFFFFFF, 0, false); _fondoInterfaz.graphics.beginFill(0, 0); _fondoInterfaz.graphics.drawRect(0, 0, VariablesGlobales.ANCHO_PANTALLA, VariablesGlobales.ALTO_PANTALLA); _fondoInterfaz.addEventListener(MouseEvent.CLICK, manejarClickJuego); _fondoInterfaz.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); _fondoInterfaz.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); _fondoInterfaz.addEventListener(MouseEvent.MOUSE_OUT, destroyMouse); } private function descargarFondo():void{ } private function traerAlFrenteTiles():void{ var _local1:LogicaTiles; var _local2:int; _local1 = new LogicaTiles(); _local2 = 0; while (_local2 < _actores.length) { if (_local1.traerAlFrente(Actor(_actores[_local2]).indice)){ _lienzo.setChildIndex(Actor(_actores[_local2]).disfraz, (_lienzo.numChildren - 1)); }; _local2++; }; } private function manejarDialogoEnJuego():void{ _dialogosEnJuego.visible = false; } public function animalDescargado():void{ _animalesPorLlevar = (_animalesPorLlevar - 1); trace((("descarga animal, animales restantes (" + _animalesPorLlevar) + ")")); if (_animalesPorLlevar <= 0){ trace("todos los aliens eliminados"); }; } private function eliminarAreaInterfaz():void{ _fondoInterfaz.removeEventListener(MouseEvent.CLICK, manejarClickJuego); } public function ejecutarNivel(){ } public function llegadaAlmacenDestino():void{ pausarMundo = true; tiempoControlFinalNivel = (getTimer() + margenTiempoControlFinalNivel); VariablesGlobales.SoundMan.playSound("claxon", 1, 0); } private function configuraCamara():void{ _objetivoCamara = null; VariablesGlobales.camara.limitesCamara = new Rectangle(0, (VariablesGlobales.limitesMundo.top + (VariablesGlobales.LADO_TILE * 5)), (VariablesGlobales.limitesMundo.width - (VariablesGlobales.LADO_TILE * 20)), (VariablesGlobales.limitesMundo.height - (VariablesGlobales.LADO_TILE * 15))); VariablesGlobales.camara.irA(new Point(389, 0), 0); } private function traerAlFrenteCamion():void{ var _local1:int; _local1 = 0; while (_local1 < _actores.length) { if ((((Actor(_actores[_local1]).indice >= 2)) && ((Actor(_actores[_local1]).indice <= 5)))){ CamionActor(_actores[_local1]).traerAlFrente(); }; _local1++; }; } private function manejarClickMenuEnJuego(_arg1:MouseEvent):void{ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.currentTarget.name){ case "reiniciar": this.dispatchEvent(new MotorEvent(MotorEvent.REINICIAR_NIVEL)); break; case "salir": this.dispatchEvent(new MotorEvent(MotorEvent.SALIR_NIVEL)); break; case "cerrar_dialogo": manejarDialogoEnJuego(); break; case "sonido": VariablesGlobales.SoundMan.Mute(); EstadoIconosAudio(); break; case "musica": VariablesGlobales.MusicMan.Mute(); EstadoIconosAudio(); break; case "solucion": VariablesGlobales.AbreWeb(VariablesGlobales.WEB_SOLUCION); break; default: trace((_arg1.currentTarget.name + " no definido menu en juego")); }; } public function set lienzoEfectos(_arg1:Sprite):void{ _lienzoEfectos = _arg1; } private function crearFondo():void{ if (_fondo != null){ _fondo.parent.removeChild(_fondo); _fondo = null; }; _fondo = new catalogoFondos(); _fondo.gotoAndStop(_temaNivel); _padre.addChildAt(_fondo, 0); } public function destroyMouse(_arg1:MouseEvent):void{ if (dest_joint){ VariablesGlobales.mundo.DestroyJoint(dest_joint); }; dest_joint = null; if (mouseJoint){ VariablesGlobales.mundo.DestroyJoint(mouseJoint); mouseJoint = null; }; } private function manejarClickMisionCumplida(_arg1:MouseEvent):void{ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.currentTarget.name){ case "siguiente": _menuMisionCumplida.visible = false; this.dispatchEvent(new MotorEvent(MotorEvent.SIGUIENTE_NIVEL)); break; case "salir": this.dispatchEvent(new MotorEvent(MotorEvent.SALIR_NIVEL)); break; case "reintentar_cumplida": _menuMisionCumplida.visible = false; this.dispatchEvent(new MotorEvent(MotorEvent.REINICIAR_NIVEL)); break; case "editar_cumplida": this.dispatchEvent(new MotorEvent(MotorEvent.SALIR_NIVEL)); break; default: trace((_arg1.currentTarget.name + " no definido menu misin fallida")); }; } private function enviarAlFondoTiles():void{ var _local1:LogicaTiles; var _local2:int; _local1 = new LogicaTiles(); _local2 = 0; while (_local2 < _actores.length) { if (_local1.enviarAlFondo(Actor(_actores[_local2]).indice)){ _lienzo.setChildIndex(Actor(_actores[_local2]).disfraz, 0); }; _local2++; }; } public function cargarNivel():void{ if (VariablesGlobales.nivelActual == null){ trace("error motor cargar el nivel"); } else { _nivel = VariablesGlobales.nivelActual; if (parsearCadenaNivel(_nivel)){ inicializaMundo(); configuraCamara(); crearObjetosNivel(); configuraMenus(); inicializaDatosPartida(); crearFondo(); _nivelCargado = true; VariablesGlobales.aliens_caidos_1_tiro = 0; VariablesGlobales.bombas_usadas = [false, false, false, false, false]; VariablesGlobales.cajas_hielo_destruidas = 0; VariablesGlobales.satelite_movido = 0; VariablesGlobales.tiempo_incio_nivel = getTimer(); VariablesGlobales.numero_cambio_bomba = 0; VariablesGlobales.numero_bombas_fuera_nivel = 0; VariablesGlobales.numero_cajas_perdidas = 0; VariablesGlobales.tiempo_acelerador = 0; VariablesGlobales.leon_transportado = false; VariablesGlobales.retorno_almacen = 0; VariablesGlobales.tiempo_quieto = 0; if ((((VariablesGlobales.SoundMan.Activo == false)) && ((VariablesGlobales.MusicMan.Activo == false)))){ _sin_sonido = true; }; }; }; } public function eliminarActor(_arg1:Actor):void{ if ((_arg1 is JaulaActor)){ trace(("eliminar en motor caja " + JaulaActor(_arg1).indice_general)); }; if (_actoresABorrar.indexOf(_arg1) < 0){ _actoresABorrar.push(_arg1); }; } public function get lienzoEfectos():Sprite{ return (_lienzoEfectos); } private function eliminarActoresAhora():void{ var _local1:Actor; var _local2:int; for each (_local1 in _actoresABorrar) { _local1.destruir(); _local2 = _actores.indexOf(_local1); if (_local2 > -1){ _actores.splice(_local2, 1); }; }; _actoresABorrar = []; } private function descargarInterfaz(){ _menuEnJuego.reiniciar.removeEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.salir.removeEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.solucion.removeEventListener(MouseEvent.CLICK, manejarClickMenuEnJuego); _menuEnJuego.avanzar.removeEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownMenuEnJuego); _menuEnJuego.retroceder.removeEventListener(MouseEvent.MOUSE_DOWN, manejarMouseDownMenuEnJuego); _menuEnJuego.avanzar.removeEventListener(MouseEvent.MOUSE_UP, manejarMouseUpMenuEnJuego); _menuEnJuego.retroceder.removeEventListener(MouseEvent.MOUSE_UP, manejarMouseUpMenuEnJuego); _menuEnJuego.avanzar.removeEventListener(MouseEvent.MOUSE_OUT, manejarMouseUpMenuEnJuego); _menuEnJuego.retroceder.removeEventListener(MouseEvent.MOUSE_OUT, manejarMouseUpMenuEnJuego); _menuEnJuego.removeEventListener(MouseEvent.MOUSE_UP, destroyMouse); _menuEnJuego.removeEventListener(MouseEvent.MOUSE_OUT, destroyMouse); _interfaz.removeChild(_menuEnJuego); _menuMisionFallida.reiniciar.removeEventListener(MouseEvent.CLICK, manejarClickMisionFallida); _menuMisionFallida.salir.removeEventListener(MouseEvent.CLICK, manejarClickMisionFallida); _menuMisionFallida.reintentar_fallida.removeEventListener(MouseEvent.CLICK, manejarClickMisionFallida); _menuMisionFallida.editar_fallida.removeEventListener(MouseEvent.CLICK, manejarClickMisionFallida); _interfaz.removeChild(_menuMisionFallida); _menuMisionCumplida.siguiente.removeEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); _menuMisionCumplida.salir.removeEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); _menuMisionCumplida.reintentar_cumplida.removeEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); _menuMisionCumplida.editar_cumplida.removeEventListener(MouseEvent.CLICK, manejarClickMisionCumplida); _interfaz.removeChild(_menuMisionCumplida); } private function crearObjetosNivel():void{ var _local1:int; var _local2:int; _actores = []; _actoresABorrar = []; _local1 = 0; while (_local1 < _tiles.length) { _local2 = 0; while (_local2 < _tiles[_local1].length) { if (_tiles[_local1][_local2] > 0){ _actores.push(fabrica.crearActor(_lienzo, _tiles[_local1][_local2], (_local1 * VariablesGlobales.LADO_TILE), (_local2 * VariablesGlobales.LADO_TILE))); if ((((_tiles[_local1][_local2] >= LogicaTiles.CAMION_1)) && ((_tiles[_local1][_local2] <= LogicaTiles.CAMION_4)))){ objetivoCamara = _actores[(_actores.length - 1)]; }; }; _local2++; }; _local1++; }; _actores.push(fabrica.crearActor(_lienzo, LogicaTiles.LIMITES_MUNDO, 0, 0)); traerAlFrenteCamion(); traerAlFrenteJaulas(); traerAlFrenteTiles(); enviarAlFondoTiles(); _mostrandoTodoElMapa = true; } } }//package
Section 241
//MotorEvent (MotorEvent) package { import flash.events.*; public class MotorEvent extends Event { public static const SIGUIENTE_NIVEL:String = "Siguiente"; public static const SALIR_NIVEL:String = "Salir"; public static const REINICIAR_NIVEL:String = "Reiniciar"; public function MotorEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("MotorEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new MotorEvent(type, bubbles, cancelable)); } } }//package
Section 242
//Murcielago (Murcielago) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Murcielago extends MovieClip { public function Murcielago(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 243
//Niveles (Niveles) package { public class Niveles { public var datos:Array; public function Niveles(){ var _local1:String; var _local2:String; var _local3:String; var _local4:String; var _local5:String; var _local6:String; var _local7:String; var _local8:String; var _local9:String; var _local10:String; var _local11:String; var _local12:String; var _local13:String; var _local14:String; var _local15:String; var _local16:String; var _local17:String; var _local18:String; var _local19:String; var _local20:String; var _local21:String; var _local22:String; var _local23:String; var _local24:String; var _local25:String; var _local26:String; var _local27:String; var _local28:String; var _local29:String; var _local30:String; var _local31:String; var _local32:String; var _local33:String; var _local34:String; var _local35:String; var _local36:String; var _local37:String; var _local38:String; var _local39:String; var _local40:String; super(); _local1 = "240,30,1,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,755,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,536,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,57,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,754,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,2,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,774,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,535,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,756,,|,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,254,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,217,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,219,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,219,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,766,,523,220,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,715,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,716,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||"; _local2 = "240,30,1,2,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,753,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,536,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,57,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,57,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,767,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,270,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,300,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,773,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,330,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,533,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,250,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,7,,,,,,,,254,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,217,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,219,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,219,|,,,,,,,,,,,,,,,,,,,,,,,,,,,523,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,219,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,766,,,220,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,715,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,718,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||||"; _local3 = "240,30,1,1,1,1,1,1,1,1,1,1;,,,,,,,,,6,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,539,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,57,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,253,,,,741,,,,,,,,,,,,,,|,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,758,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,350,,,,725,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,340,,,,723,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,330,,,,724,,,724,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,535,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,330,,,,724,,,724,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,330,,,,724,,,724,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,330,,,,724,,,724,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,330,,,,724,,,724,,,,,|,,,,,,,,,,,,,,,,,533,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,330,,,,724,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,340,,,,723,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,513,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,340,,,,723,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,350,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,290,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,290,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,7,,,,,,,,254,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,712,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,712,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,217,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,219,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,,,526,219,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,219,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,766,,,220,,,,,,,|,,,,,,,,,,,,,,,,,,,,,712,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,715,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,716,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||"; _local4 = "240,30,1,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,538,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,54,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,513,,,,,,,,,,,712,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,2,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,760,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,737,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,513,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,535,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,280,,,,|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,300,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,330,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,723,725|,,,,,,,,,,,,,,,,,,,,,,,,534,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,330,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725|,,,,,,,,,,,,516,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,532,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,300,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,254,,,,752,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,217,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,523,219,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,|,,,,,,,,,,,,,,,,,,,,,,715,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,717,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,253,,,,741,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||"; _local5 = "240,30,1,2,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,524,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,57,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,54,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,201,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,201,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,330,,,,724,|,,,,,,,,,,,,514,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,340,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,350,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,270,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,270,,|,,,,,,,,,,,,,,,,,,,,,,,,,,532,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,532,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,516,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,280,,,,,|,,,,,,,,,,,,,,,,,,,,,,,533,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,340,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,350,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,511,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,254,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,217,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,525,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,715,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,718,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||"; _local6 = "240,30,2,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,523,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,51,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,762,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,270,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,513,,,,,,,,,,,,250,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,270,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,270,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,534,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,534,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,511,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,300,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,532,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,340,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,534,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,254,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,217,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,524,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,|,,,,,,,,,,,,,,,,,,,,,,,,715,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,716,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||"; _local7 = "240,30,2,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,525,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,53,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,761,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,250,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,300,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,511,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,535,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,534,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,513,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,201,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,201,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,201,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,254,,|,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,217,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,715,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,524,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,716,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||||||||||||"; _local8 = "240,30,2,2,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,51,,,526,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,53,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,2,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,280,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,725|,,,,,,,,,,,,,513,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,330,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,533,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,350,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,330,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,533,280,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,511,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,300,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,270,,|,,,,,,,,,,,,,,,,,,,,,,,,,,532,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,310,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,7,,,,,,,,254,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,217,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,525,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,715,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,718,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||"; _local9 = "240,30,2,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,6,524,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,55,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,2,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,759,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,280,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,300,,,,726,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,724,|,,,,,,,,,,,514,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,280,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,535,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,300,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,112,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,206,116,,,221,,|,,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531,|,,,,,,,,,,,,,,,,,,,,,,,527,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223,,|,,,,,,,,,,,,,,,,,,,,,,,250,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,534,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,320,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,516,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,320,,,,725,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,534,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,320,,,,725,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,535,280,,,,723,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,7,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,254,,,,752,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,217,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,526,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,715,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,718,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||||"; _local10 = "240,30,2,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,50,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,523,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,3,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,535,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,763,270,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,250,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,112,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,205,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,101,111,|,,,,,,,,,,,,,,,,,,,,,,,,,,,527,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,212,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,532,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,516,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,532,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,112,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,207,116,,,221|,,,,,,,,,,,,,,,,,,,,,,,,,101,111,,,|,,,,,,,,,,,,,,,,,,,,,,,,,527,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223|,,,,,,,,,,,,,,,,,,,,,,,,,350,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,534,201,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,254,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,217,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,525,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,715,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,716,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||"; _local11 = "240,30,3,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,|,,,,,,,,,,,,,,,,,,,,,,50,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,51,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,526,,,|,,,,,,,,,,,,,,,,,,,,,,57,55,55,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,253,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,772,280,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,532,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,280,,,|,,,,,,,,,,,512,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,213,,,|,,,,,,,,,,,,,,,,,,,,,,,,,100,450,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,100,440,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,100,444,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,100,440,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,100,455,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,112,,,,,214,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,270,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,206,116,,|,,,,,,,,,,,,,,,,,,,,,,,,,,101,111,,|,,,,,,,,,,,,,,,,,,,,,,,,,,530,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,212,116,,|,,,,,,,,,,,,,,,,,,,,,,,,,300,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,534,250,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,213,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,450,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,444,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,100,444,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,444,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,455,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,214,,,,|,,,,,,,,,,,,,,,,,,,,,,,,300,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,250,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,7,,,,,,,,254,,,,752,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,217,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,524,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,715,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,716,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||"; _local12 = "240,30,3,4,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,57,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,57,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,57,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,53,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,53,,,525,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,3,253,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,737,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,515,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,533,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,737,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,320,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,534,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,290,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,534,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,310,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,280,,,,,,,|,,,,,,,,,513,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,310,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,532,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,280,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,280,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,320,,,,725,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,310,,,,723,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,300,,,,724,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,310,,,,723,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,320,,,,725,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,280,,,,724,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,254,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,7,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,217,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,218,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,219,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,218,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,219,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,218,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,219,,,,,,,,,,,,,|,,,,,,,,,,,,,,,526,218,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,219,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,218,,,,,,,,,,,,,|,,,,,,,,,,,,,766,,,220,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,715,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,716,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||"; _local13 = "240,30,3,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,523,,|,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,3,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,757,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,740,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,323,,,|116,,,,116,517,,,720,,,,,,425,,,113,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,114,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,435,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,291,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,405,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,351,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,521,,,,,720,,,,,,425,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,331,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,721,,,,,,425,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,395,,,,,,,,731,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,721,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,395,,,,,,,,,,,291,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,518,,,,,,,,,,406,,,,,,,,,,,,,,|,,,,,,,,,,,721,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,110,,,,,,,,,,,291,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,400,,,,,,,,,,,,|,,,,,,,,,,,721,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,420,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,321,,|,,,,,,,,,,,720,,,,,,,,,,,,,,,,,,|,,,,,522,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,720,,,,,,410,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,311,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,420,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,321,,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,720,,,,,,410,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,114,,,,,,,,333,,,,749|,,,,,,,,,,,,,,,,,113,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,350,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,254,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,217,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,526,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,|,,,,,,,,,,,,,,,,,,,,,,,,,715,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,718,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,253,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||||||||"; _local14 = "240,30,3,2,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,523,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,52,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,3,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,764,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,533,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,534,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,534,250,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,350,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,533,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,535,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,535,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,535,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,300,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,515,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,340,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,511,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,254,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,217,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,524,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,|,,,,,,,,,,,,,,,,,,,,,,,,715,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,716,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||||||||||||||"; _local15 = "240,30,3,2,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,50,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,52,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,524,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,218,|,,,,,,,,,,,,,,,,,,,,,,,,,,,3,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,290,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,740,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,310,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,719,,,,,,430,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,517,,719,,,719,,,,,,430,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,352,,,|,,,,,,,,,,,,,,,,,113,,,,,,,,,,,,|,,,,,,,719,,,721,,,,,,430,114,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,|,,,,,,,721,,,,,,,,,420,,,,,,,,,,,,,|,,,,,,,,,,719,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,737,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,311,,,|,,,,520,,721,,,721,,,,,,420,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,311,,,,719|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,721,,,,,,420,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,311,,,,719,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,721,,,721,,,,,,420,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,301,,,,720,,|,,,,519,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,301,,,,720,,,|,,,719,,,719,,,,,,400,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,311,,,,719,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,721,,,721,,,,,,420,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,321,,,,721,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,720,,522,720,,,,,,405,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,291,,,,721,,,,,|,,721,,,721,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,410,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,114,,,,,,737,,,203,,,,747,,,,,|,,720,,720,,,,,,410,113,,,,,,,,320,,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|720,,,720,,,,,,410,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,320,,,,725,,,,,,,|720,,720,,,,,,410,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|720,720,,,,,,410,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,310,,,,723,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,300,,,,724,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,300,,,,724,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,310,,,,723,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,320,,,,725,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,254,,,,752,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,7,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,252,,,,728,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,217,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,218,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,219,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,218,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,219,,,,,,,,,,,,,,,,|,,,,,,,,,,,,523,218,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,219,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,218,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,219,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,218,,,,,,,,,,,,,,,,|,,,,,,,,,,766,,,220,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,252,,,,,,,,,,,,,,,,|,,,,,,,,,,,715,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,252,,,,,,,,,,,,,,,,|,,,,,,,,,,,717,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,712,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,252,,,,,,,,,,,,,,,,|,,,,,,,,,,,,712,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,252,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,252,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||"; _local16 = "240,30,4,2,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,524,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,55,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,51,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,3,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,738,,320,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,533,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,112,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,533,,,,,726,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,726,|,,,,,,,,,,,,,,,,,,,,,,,,206,116,,,221,|,,,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531|,,,,,,,,,,,,,,,,,,,,,,,,529,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,738,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,350,,,,725,|,,,,,,,,,,,,516,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,112,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,201,,,,726|,,,,,,,,,,,,,,,,,,,,,,,,,201,,,,726|,,,,,,,,,,,,,,,,,,,,,,,,,205,116,,,221|,,,,,,,,,,,,,,,,,,,,,,,,,101,111,,,|,,,,,,,,,,,,,,,,,,,,,,,,,527,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223|,,,,,,,,,,,,,,,,,,,,,,,,,350,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,534,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,532,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,254,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,217,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,525,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,715,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,718,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||||"; _local17 = "240,30,4,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,57,,,,,|,,,,,,,,,,,,,,,,,,,,,,55,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,52,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,54,,54,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,523,,,|,,,,,,,,,,,,,,,,,,,,,,,54,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,3,253,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,733,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,533,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,112,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,709,206,116,,,221|,,,,,,,,,,,,,,,,,,,,,,,,,102,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,530,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,710,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223|,,,,,,,,,,,,,,,,,,,,,,,,,350,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,535,,,,|,,,,,,,,,,,,,,,,,,,,,,,733,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,350,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,513,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,290,,|,,,,,,,,,,,,,,,,,,,,,,,,,,532,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,112,,,,709,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,206,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,102,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,530,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,710,212,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,270,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,7,,,,,,,,254,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,217,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,766,,524,220,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,715,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,716,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||"; _local18 = "240,30,4,2,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,55,,,525,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,53,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,738,,,250,|,,,,,,,,,,,,,,,,,,,,,,,,,,,535,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,112,,,,300,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,205,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,101,111,|,,,,,,,,,,,,,,,,,,,,,,,,,,,530,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,212,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,738,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,513,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,300,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,533,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,112,,,330,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,205,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,101,111,|,,,,,,,,,,,,,,,,,,,,,,,,,,,530,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,212,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,201,,|,,,,,,,,,,,,,,,,,,,,,,,,,,532,254,,|,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,217,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,715,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,524,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,716,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||||||||||"; _local19 = "240,30,4,4,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,6,,252,,,,,,,,|,,,,,,,,,,,,,,,,,53,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,52,,53,,,,252,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,51,,54,,,,252,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,57,54,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,252,,,,,,,,|,,,,,,,,,,,,,,,,,,,,526,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,252,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,252,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,4,253,,,,741,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,290,,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,725,,,,|,,,,,,,,,,,,,,,,,,729,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,330,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,330,,,,724,,,|,,,,,,,,,,,,,,,,,,,,732,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,330,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,330,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,512,,,,,,706,103,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,213,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,450,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,440,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,444,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,445,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,445,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,440,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,100,455,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,214,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,250,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,300,,,,724,|,,,,,,,,,,,511,,,,,,,706,103,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,300,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,300,,,,724,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,300,,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,300,,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,254,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,7,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,217,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,523,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,715,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||"; _local20 = "240,30,4,1,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,6,524,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,56,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,55,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,535,280,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,513,,,,,,,,,,,310,,,,726,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,738,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,270,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,533,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,300,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,112,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,206,116,,,221,,|,,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531,|,,,,,,,,,,,,,,,,,,,,,,,527,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223,,|,,,,,,,,,,,,,,,,,,,,,,,250,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,535,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,320,,,,725,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,320,,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,534,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,290,,,,,,,,|,,,,,,,,515,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,733,,,,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,250,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,532,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,320,,,,725,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,320,,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,112,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,709,207,,,,726,,,,,,|,,,,,,,,,,,,,,,,,,,102,,,,,531,,531,,,|,,,,,,,,,,,,,,,,,,,530,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,710,212,,,,703,,,,,,|,,,,,,,,,,,,,,,,,,,290,,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,7,,,,,,,,254,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,712,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,217,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,,|,,,,,,,,,,,,,,,,,,526,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,715,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,712,,,,,,,,,,,|,,,,,,,,,,,,,,,,,716,712,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||||"; _local21 = "240,30,1,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,|,,,,,,,,,,,,,,,,,,,,,,,53,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,54,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,523,,,|,,,,,,,,,,,,,,,,,,,,,56,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,52,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,712,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,4,253,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,250,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,310,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,740,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,270,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,744|,517,,,,,,,,,,,,,,113,,,,,,,,,,204,,,,|,,,,,,,,,,,,,,,114,,,,,,,,,,281,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,331,,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,351,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,518,,,,,,,,,,,,,,,,,,,,,,,,,,291,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,301,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,311,,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,733,,,,,,,|,521,,,,,,,,,,,,,,,,,,,,,,,,281,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,351,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,281,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,518,,,,,,,,,,,,,,,,,,,,,,,,709,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,209,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,102,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,770,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,522,,,,,,,,,,,,,,,,,,,,,,,,710,211,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,291,,,|,,,,,,,,,,,,,,,,,,,,,,,737,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,311,,,,719|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,301,,,,720,|,,,,,,,,,,,,,,,114,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,113,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,302,,,,749,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,310,,,,723,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,320,,,,723,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,723,,,723,|,,,,,,,,,,,,,,,,,,,,,290,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,513,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,724,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,340,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,724,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,340,,,,723,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,352,,,,726,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,744,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,517,,,,,,,,,,,,,113,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,114,,,,,,,,,,,,,722,,|,,,,,,,,,,,,,,,,,,,,,,,,351,,,,721,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,291,,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,311,,,,721,|,520,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,281,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,720,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,732,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,311,,,,719,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,731,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,311,,,,719,,,719|,518,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,251,,,,721,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,215,,,,,,,|,,,,,,,,,,,,,,,,,,,,,100,451,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,721,,,721|,,,,,,,,,,,,,,,,,,,,,100,441,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,100,447,,,,,,,|,522,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,100,448,,,,721,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,110,,,,,,,,,,,,,,100,447,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,100,441,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,719,,,719|,,,,,,,,,,,,,,,,,,,,,100,456,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,216,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,291,,,,721,,,721|,,,,,,,,,,,,114,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,113,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,353,,,,751,,,751|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,340,,,,723,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,254,,,,752,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,217,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,524,219,,,,,|,,,,,,,,,,,,,,,,,,,,,766,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,220,,,,,|,,,,,,,,,,,,,,,,,,,,,,715,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,717,712,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||||"; _local22 = "240,30,1,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,6,,252,,,,,,,,,,,|,,,,,,,,,,,,,51,,55,,526,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,57,,,,,252,,,,,,,,,,,|,,,,,,,,,,,,56,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,50,,,,,252,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,252,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,712,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,252,,,,,,,,,,,|,,,,,,,,,,,,,,,,,712,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,712,252,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,4,253,,,,741,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,730,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,330,,,,725,,,,,,,|,,,,,,,,,,,,,,,705,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,106,,,,,,,,,,,,,|,,,,,,,516,,,,,,,,,,,,330,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,723,,,,,,|,,,,,,,,,,,,,,,,,,,,330,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,290,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,533,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,270,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,535,,,,,,,,,|,,,,,,,,,,,,,,,,,,733,,310,,,,723,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,705,115,,,300,,,,724,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,514,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,112,,,,300,,,,724,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,730,,709,205,,,,221,,,,,,,|,,,,,,,,,,,,,,,,,,102,,,,,531,,531,,,,|,,,,,,,,,,,,,,,,,,768,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,109,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,710,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,212,,,,223,,,,,,,|,,,,,,,,,,,,,,,,,,330,,,,724,,,,,,,|,,,,,,,516,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,705,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,106,,,330,,,,724,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,535,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,330,,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,330,,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,290,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,724,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,533,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,725,,,|,,,,,,,,,,,,,,,,,,,,,,280,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,535,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,320,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,320,,,,725,,,,,|,,,,,,,,,,,,,,,,,,738,,535,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,533,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,705,115,,,320,,,,725,,,725,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,112,,,,,,,,,,,,,,|,,,,,,,514,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,205,116,,,221,,,,221,,|,,,,,,,,,,,,,,,,,,,101,111,,,,531,,531,,531,|,,,,,,,,,,,,,,,,,,,530,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,212,116,,,223,,,,223,,|,,,,,,,,,,,,,,,,,,,254,,,,752,,,752,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,7,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,728,,,728,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,217,,,,728,,,728,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,728,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,525,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,728,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,728,,,,,,|,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,715,,,,,,728,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,718,,,,,,728,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,728,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||"; _local23 = "240,30,1,4,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,54,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,54,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,54,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,54,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,523,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,4,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,729,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,340,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,340,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,534,,,,|,,,,,,,,,,512,,,,,,706,103,,,,,,,,,201,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,201,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,535,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,724,|,,,,,,,,,,,,,,,,,,,,,,729,,320,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,733,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,340,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,724,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,340,,,,723|,,,,,,,,,,512,,,,,,706,103,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,709,201,,,|,,,,,,,,,,,,,,,,707,,,,,,,,,,206,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,102,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,768,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,710,212,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,533,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,726,|,,,,,,,,,,,,,,,,,,,,,,,535,201,,,,726,|,,,,,,,,,,,,,,,,,,,,,,,,254,,,,752,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,217,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,523,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,715,,,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||||"; _local24 = "240,30,1,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,6,,252,,,,728,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,57,,526,252,,,,728,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,57,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,,|,,,,,,,,,,,,,,,,,,,,57,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,57,,,252,,,,728,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,253,,,,741,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,533,290,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,737,,320,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,514,,,,,,,,,,,,320,,,,725,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,280,,,723,,,723,,|,,,,,,,,,,,,,,,,,,,,533,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,320,,,724,,,724,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,724,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,,,,,,,,,,,,,534,,,725,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,513,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,737,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,310,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,725,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,290,,,,,,,,,,|,,,,,,,,,,,,,,,,,,532,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,725,,,725,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,515,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,310,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,725,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,270,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,534,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,270,,725,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,513,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,320,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,725,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,290,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,511,,,,,,,,,,,,,,,725,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,290,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,533,,,,725,,,725,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,250,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,723,,,723,,,,,,|,,,,,,,,,,,,,,,,535,250,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,350,,,,725,,,725,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,512,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,350,,,,725,,,725,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,533,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,350,,,,725,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,514,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,350,,,,725,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,250,,,,725,,,724,|,,,,,,,,,,,,,,,,,,,,534,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,350,,,,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,516,,,,,,,,,,,,250,,,,723,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,532,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,350,,,,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,723,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,330,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,512,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,534,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,516,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,535,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,254,,,,752,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,7,,,,,,,,252,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,217,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,525,219,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,728,|,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,715,,,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,718,,,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,728,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,727,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,727,|,,,,,,,,,,,,,,,,,,,,,,,,253,,,,741,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||||"; _local25 = "240,30,1,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,6,,252,,,,,,|,,,,,,,,,,,,,,,50,,,50,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,523,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,56,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,54,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,253,,,,,,|,,,,,,,,,,,,,,,,,,,,,,5,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,740,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,350,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|116,,,,,720,,,,,,425,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,720,,,,,,425,,,,,,,,,,,,352,,,,746,|,,517,,,,,,,,,,,,,113,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,114,,,,,,,,,,,,,,|,,,,,,,720,,,,,,425,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,733,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,331,,,,720|,,,,,,,,720,,,,,,425,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,341,,,|,,,,,,,,,721,,,,,,435,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,271,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,518,,,,,,,721,,,,,,405,,,,,,,112,,,,709,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,210,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,102,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,769,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,405,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,405,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,520,,,,,,,,,,,,,,,,,,,,,,,,710,211,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,251,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,720,,,,,,425,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,351,,|,,,,,,,,,,,,,,,,,,,,,,,,,731,,,,|,,,,,,,,,,,721,,,,,,425,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,390,,,,,,,,,,,291,|,,,,,,,,,,,,,,,406,,,,,,,,,,,,,,|,,,,,,,,,,,721,,,,,,,,,,,,,,,,,711,|,,518,,,,,,,,,,,,,,,110,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,321,,|,,,,,,,,,,,,,,,,,390,,,,,,,,,,,,|,,,,,,,,,,,720,,,,,,390,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,420,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,720,,,,,,,,,708,115,,,,,321,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,735,,,,,|,,,,,,,,,,720,,,,,,395,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,521,,,,,,,,,,,,,,,,,,,,,,,301,,,,720|,,,,,,,,,,720,,,,,,410,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,301,,,,721,|,,,,,,,,,720,,,,,,395,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,291,,,,,|,,,,,,,,,720,,,,,,410,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,720,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,721,,,,,,405,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,331,,,720,,|,,518,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,331,,,720,|,,,,,,719,,,719,,,,,,430,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,331,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,721,,,721,,,,,,430,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,107,,,731,,,,,719|,,,,,,,,,,,,,,,,390,,,,708,,,,,,,,,|,,522,,,719,,,719,,,721,,,,,,435,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,311,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,720,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,721,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,721,,,,406,,,,,,,,,,,281,,720,|,,,,,,,,,,,,,,,,,,,,,,,,,,711,,,|,,,,,,,,,,,,,,,,,110,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,720,,|,,,,,721,,,721,,,,,,,,,,,,,,,,,321,,,,|,,,,,,,,,,,719,,,,,,415,,,,,,,,,,,,|,,,,,,,,,,,,,,,,114,,,,,,,,,,,720,,|,,,,,,,,,,,,,,,,113,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,302,,751,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,320,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,725,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,201,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,201,,,,,,|,,,,,,,,,,,,,,,,,,,,,,320,,,,725,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,350,,,,725,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,254,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,252,,,,,,|,,,,,,,,,,,,,,,7,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,217,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,524,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,715,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,716,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||||||||"; _local26 = "240,30,2,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,6,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,55,57,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,57,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,56,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,56,,,,,525,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,253,,,,741|,,,,,,,,,,,,,,,,,,,,,,740,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,534,,,,,|720,,,720,,,720,,,,,,425,,,,,,,,,,,,,,,,,|,,,,,,,,,,517,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,342,,,,745|,,,,,,,720,,,,,,425,,,113,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,114,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,735,,,,,,|,,,,,,,,720,,,,,,425,,,,,,,,,,,,351,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,720,,,,,,425,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,351,,|,,,,,,,,,,721,,,,,,435,,,,,,,115,,,,,,|,,,,,,,,,,,,,,,,,,,,,,708,,,,,,,|,,,,,,,,,,518,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,|,,,,,,,,,,721,,,,,,420,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,405,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,321,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,520,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,420,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,735,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,311,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,719,,,,,,400,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,251,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,430,,,,,,,,,,,331,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,518,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,|,,,,,,,,,,,,,,,405,,,,,,,,107,,,,,,|,,,,,,,,,721,,,,,,,,,,,,,708,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,115,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,|,,,,,,,,,,,,,,,395,,,,,,,,,,,,,,|,,,,,,,,,720,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,735,,,,,|,,,,,,,,,,,,,,,415,,,,,,,,,,,,,,|,,,,,,,,,720,,,,,,,,,,,,,,,,,,351,,|,,,,,,,,,,521,,,,,,,,,,,,,115,,,,,,|,,,,,,,,,,,,,,,,,,,,,,708,,,,,,,|,,,,,,,,721,,,,,,405,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,721,,,,,,420,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,321,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,522,,,405,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,301,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,405,,,,,,,,,,,,,291,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,107,,,,,,|,,,,,,,,,,,,,410,,,,,,,,,708,,,,291,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,410,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,322,,,,751|,,,,,,,,,,,,,,,,114,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,113,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,7,,,,,,,,254,,,,752|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,217,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,526,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,715,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,716,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||||||"; _local27 = "240,30,2,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,6,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,55,57,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,57,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,56,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,56,,,,,525,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,253,,,,741|,,,,,,,,,,,,,,,,,,,,,,740,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,534,,,,,|720,,,720,,,720,,,,,,425,,,,,,,,,,,,,,,,,|,,,,,,,,,,517,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,342,,,,745|,,,,,,,720,,,,,,425,,,113,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,114,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,735,,,,,,|,,,,,,,,720,,,,,,425,,,,,,,,,,,,351,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,720,,,,,,425,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,351,,|,,,,,,,,,,721,,,,,,435,,,,,,,115,,,,,,|,,,,,,,,,,,,,,,,,,,,,,708,,,,,,,|,,,,,,,,,,518,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,271,|,,,,,,,,,,721,,,,,,420,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,405,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,321,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,520,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,420,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,735,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,311,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,719,,,,,,400,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,251,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,721,,,,,,430,,,,,,,,,,,331,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,518,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,|,,,,,,,,,,,,,,,405,,,,,,,,107,,,,,,|,,,,,,,,,721,,,,,,,,,,,,,708,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,115,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,291,,|,,,,,,,,,,,,,,,395,,,,,,,,,,,,,,|,,,,,,,,,720,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,735,,,,,|,,,,,,,,,,,,,,,415,,,,,,,,,,,,,,|,,,,,,,,,720,,,,,,,,,,,,,,,,,,351,,|,,,,,,,,,,521,,,,,,,,,,,,,115,,,,,,|,,,,,,,,,,,,,,,,,,,,,,708,,,,,,,|,,,,,,,,721,,,,,,405,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,291,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,721,,,,,,420,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,321,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,522,,,405,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,301,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,405,,,,,,,,,,,,,291,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,107,,,,,,|,,,,,,,,,,,,,410,,,,,,,,,708,,,,291,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,410,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,322,,,,751|,,,,,,,,,,,,,,,,114,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,113,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,7,,,,,,,,254,,,,752|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,712,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,217,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,,,526,219,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,218,,,,|,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,715,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,716,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,252,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||||||"; _local28 = "240,30,2,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,,55,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,57,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,53,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,524,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,4,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,270,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,740,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|116,,,116,,,,720,,,,,,425,,,,,,,,,,735,,,,,,|,,517,,,,,,,,,,,,,,113,,,,,,,,,313,,,,745|,,,,,,,,,,,,,,,,114,,,,,,,,,,,,,|,,,,,,,,721,,,,,,425,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,708,108,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,311,,,,719,|,,,,,,,,,,,,,,400,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,719,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,301,,,,720,,|,,,,,,,,,,,,,,420,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,720,,,,,,,,,,,,,,301,,,,719,,,719|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,520,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,721,,,,,,405,,,,,,,,,251,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,721,,,721|,,,,,,,,,,,,,,,,,,,733,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,331,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,721,,,,,,435,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,331,,,,720,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,331,,,,720,|,,,,,,,,721,,,,,,400,,,,,,,,,,,,,,,|,,518,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,331,,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,420,,,,,708,115,112,,,,709,,,,|,,,,,,,,719,,,,,,,,,,,,,,,,,,209,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,102,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,768,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,721,,,,,,405,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,518,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,721,,,,,,405,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,115,,,,,710,211,,,|,,,,,,,,,,,,,,,,,,,708,,,,,,321,,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,721,,,,,,430,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,720,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,735,,,321,,,,,|,,,,,,,,,,,,,,415,,,,,,,,,,,,,720,,|,,,,,,,,720,,,,,,,,,,,,,,,,,,,,,|,,519,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,721,,,721|,,,,,,,721,,,,,,420,,,,,,,,,,311,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,301,,,,720,,,720|,,,,,,721,,,,,,420,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,331,,,,720,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,522,,,719,,,,,,400,,,,,,,,,,,,331,,,,720,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,331,,,,720,|,,,,,,721,,,,,,430,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,331,,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,395,,,,,,,,,,,,,,,,,|,,,,,,721,,,,,,,,,,,,,,107,,,,,,353,,,|,,,,,,,,,,,,,,,,,,,708,,,,,,,,,,|,,,,,,,,,,,,410,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,114,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,113,,,,,,,,,,,,|,,,,,720,,,,,,410,,,,,,,,,,,,,,,,201,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,250,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,254,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,217,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,218,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,|,,,,,,,,,,,,,,,,,,,,,,,,,,525,218,,|,,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,715,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,716,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,252,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||"; _local29 = "240,30,2,4,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,51,,6,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,51,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,51,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,523,,,,,,,,|,,,,,,,,,,,,,,,,,,51,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,51,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,712,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,712,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,712,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,253,,,,,,,|,,,,,,,,,,,,,,,,,,,,,5,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,712,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,201,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,350,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,350,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,515,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,740,,,280,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,,|,,,,,,,,,,,,,,,,,,,,,,,533,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,720,,,720,,,,,,425,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,323,,,,,,|,,,,,,,517,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,720,,,720,,,,,,425,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,721,,,721,,,,,,435,,,,,321,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,721,,,721,,,,,,405,,,,,291,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,518,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,721,,,721,,,,,,405,,,,,291,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,721,,,721,,,,,,405,,,,,291,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,721,,,721,,,,,,420,,,,321,,,,,,,,|,,,,,,,521,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,721,,,721,,,721,,,,,,420,,,,321,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,721,,,721,,,,,,405,,,,,291,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,522,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,720,,,721,,,721,,,,,,435,,,,351,,,,721,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,720,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,720,,,720,,,,,,410,,,,,353,,,,,,,,|,,,,721,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,720,,720,,,,,,410,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,350,,,,,,,|,,720,,,720,,,720,,,,,,410,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,290,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,513,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,115,,,,,213,,,,,,|,,,,,,,,,,,,,,,,,,705,,,,,450,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,445,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,444,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,440,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,444,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,105,,,,440,,,,,,|,,,,,,,,,,,,,,,,,,705,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,455,,,,,,|,,,,,,,,,,,513,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,214,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,250,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,254,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,7,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,217,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,524,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,715,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,716,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||"; _local30 = "240,30,2,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,6,,218,,,,,,,,,,,,,|,,,,,,,,,,,50,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,57,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,57,,,,,,,,,,,,,,,,|,,,,,,,,,,56,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,56,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,524,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,712,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,712,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,712,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,218,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,218,,,,,,,,,,,,,|,,,,,,,,,,,,,,,4,253,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,740,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,320,,,,725,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,425,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,323,,,,746,,,,,,,,,,,|517,395,425,,,113,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,114,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,425,,,,,,,,731,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,351,,,,721,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|720,,,,425,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|720,,,,,425,,,,,,,,,,331,,,,720,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|721,,,406,,,,,,,,,,,,,291,,,,721,,,,,,,,,|519,,,,,,,,,,,,,,,,711,,,,,,,,,,,,,|,,,,,,110,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|720,,,,,,425,,,,,,,,,,351,,,,721,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,720,,,,,,425,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,341,,,,719,,,,,,,,|,,721,,,,,,435,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,736,,,,,,,,,,,,,,|518,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,331,,,,720,,,,,,,|,,,,,,,,,,,,,,,,731,,,,,,,,,,,,,|,,,721,,,,,,435,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,331,,,,720,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,331,,,,720,,,,,|,,,,721,,,,,,435,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,371,,,,720,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|520,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,721,,,,406,,,,,,,,,,,,,711,,,,720,,,,|,,,,,,,,,,,,,,,,,,,,,371,,,,,,,,|,,,,,,,,,,110,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,721,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,720,,,,,,395,,,,,,,,,,,361,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,719,,,,,,400,,,,,,,,,,,351,,,,721,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|521,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,721,,,,,,435,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,351,,,,721,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,721,,,,,,435,,,,,,,,736,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,351,,,,721,,|,,,,,,,,,,,,,,,,,,,,,731,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,721,,,,,,435,,,,,,,,,,,,,,,,|518,,,,,,,,,,,,,,,,,,,,,,,,351,,,,721,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,721,,,,,,435,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,361,,,,720|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,381,,,,721|,,,,,,,,721,,,,406,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,711,,,,|,,,,,,,,,,,,,,110,,,,,,,,,,,,,,,|519,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,381,,,,721|,,,,,,,,721,,,,,,420,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,291,,,,721|,,,,,,,721,,,,,,420,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,321,,,,721,|520,,,,,,720,,,,,,410,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,720,,,,,,410,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,311,,,,719,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,720,,,,,,410,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,301,,,,720,,,|,,,720,,,,,,410,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,311,,,,719,,,,|522,,720,,,,,,410,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,720,,,,,,410,,,,,,,,,,,,,322,,,,722,,,,,|,,,,,,,,,,,114,,,,,,,,,,,,,749,,,,,|,,,,,,,,,,,113,,,,,,,,,,,,,,,,,,|720,,,,,,410,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,725,,,,,|,,,,,,,,,,,,,,,,,,,,280,,,,,,,,,|,,,,,410,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,410,,,,,,,,,,,,,,,,254,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,7,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,217,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,523,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,715,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,716,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||||||"; _local31 = "240,30,3,4,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,55,53,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,57,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,51,,52,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,526,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,4,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,350,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,730,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,350,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,535,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,350,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,115,,,,532,280|,,,,,,,,,,,,,,,,,,,,,,,,705,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,514,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,250|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,535,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,201|,,,,,,,,,,,,,,,,,,,,,,,,,,,,532,201|,,,,,,,,,,,,,,,,,,,,,,,,,,,,310,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,105,,,535,250,|,,,,,,,,,,,,,,,,,,,,,,,,705,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,513,,,,,,,,,,,,280,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,320,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,532,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,736,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,290,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,737,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,532,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,533,270,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,513,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,370,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,370,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,360,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,330,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,300,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,340,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,516,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,280,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,270,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,254,,,|,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,217,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,525,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,715,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,718,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||||"; _local32 = "240,30,3,6,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,51,,6,,252,,,,,|,,,,,,,,,,,,,,,,,,,51,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,51,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,51,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,524,,,,,,|,,,,,,,,,,,,,,,,,,,,55,55,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,5,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,253,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,250,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,738,,320,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,112,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,320,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,736,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,205,,,,221,,,|,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531,,531|,,,,,,,,,,,,,,,,,,,,,,530,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,212,,,,223,,,|,,,,,,,,,,,,,,,,,,,,,,380,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,380,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,380,,,,725,,,725|,,,,,,,,,,511,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,370,,,,724,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,723,,,723|,,,,,,,,,,,,,,,,,,,738,,,360,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,380,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,112,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,290,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,206,116,,,221,,,|,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531,,531|,,,,,,,,,,,,,,,,,,,,,,527,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,212,116,,,223,,,|,,,,,,,,,,,,,,,,,,,,,320,,,,725,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,320,,,,725,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,320,,,,725,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,512,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,290,,,,725,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,7,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,254,,,,752,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,712,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,217,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,525,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,715,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,716,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||"; _local33 = "240,30,3,3,1,1,1,1,1,1,1,1;,,,,,,,,,6,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,55,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,57,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,55,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,524,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,54,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,2,253,,,,741,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,350,,,,725,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,535,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,340,,,,723,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,738,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,330,,,,724,,,724,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,534,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,330,,,,724,,,724,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,513,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,330,,,,724,,,724,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,532,,,,,,,,,,,,,,|,,,,,,,,,,,,112,,,,330,,,,724,,,724,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,205,116,,,221,,,,,,,,|,,,,,,,,,,,,,,,,,101,111,,,,531,,,,,,,|,,,,,,,,,,,,,,,,,529,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,212,116,,,223,,,,,,,,|,,,,,,,,,,,,,,,,,350,,,,725,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,340,,,,723,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,330,,,,724,,,,,,|,,,,,,,,,,,,,,,,,,,533,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,330,,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,512,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,330,,,,724,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,290,,,,725,,,|,,,,,,,,,,,,,,,,,,,738,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,534,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,350,,,,725,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,533,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,340,,,,723,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,112,,,,330,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,205,116,,,221|,,,,,,,,,,,,,,,,,,,,,,,,,101,111,,,|,,,,,,,,,,,,,,,,,,,,,,,,,530,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725,|,,,,,,,,,,,,,,,,,,,,,,,,532,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,532,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,320,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,7,,,,,,,,254,,,,752,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,728,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,217,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,523,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,715,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,717,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||"; _local34 = "240,30,3,3,1,1,1,1,1,1,1,1;,,,,,,,,,,6,,252,,,,,,,,,,,,,,,,,|,,,,,,,50,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,50,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,525,252,,,,,,,,,,,,,,,,,|,,,,,,,50,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,252,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,5,253,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,350,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,723,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,535,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,340,,,,723,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,532,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,340,,,,723,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,340,,,,723,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,738,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,340,,,,723,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,532,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,350,,,,725,,,725,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,515,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,280,,,,723,,725,,,,,|,,,,,,,,,,,,,,,,,533,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,112,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,205,116,,,221,,,,,,,|,,,,,,,,,,,,,,,,,,101,111,,,,531,,,,,,|,,,,,,,,,,,,,,,,,,528,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,212,116,,,223,,,725,,,,|,,,,,,,,,,,,,,,,,,280,,,,725,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,350,,,,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,723,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,340,,,,723,,,,,,|,,,,,,,,,,,,,,,,,,,533,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,340,,,,723,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,340,,,,723,,,,|,,,,,,,,,,,,,,,,,,,,,533,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,738,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,340,,,,723,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,350,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,514,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,280,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,112,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,205,116,,,221,|,,,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531|,,,,,,,,,,,,,,,,,,,,,,,,529,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223,|,,,,,,,,,,,,,,,,,,,,,,,,280,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,535,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,320,,,,725,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,533,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,310,,,,723,,,723|,,,,,,,,,,,,,,,,,,,,,,535,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,310,,,,723,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,516,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,310,,,,723,,,723,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,534,,,,,,,,,,|,,,,,,,,,,,,,,,,,738,,310,,,,723,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,320,,,,723,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,725,,,,,,,|,,,,,,,,,,,,,,,,,,280,,,,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,112,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,205,116,,,221,,,,,,,|,,,,,,,,,,,,,,,,,,101,111,,,,531,,,,,,|,,,,,,,,,,,,,,,,,,530,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,212,116,,,223,,,725,,,,|,,,,,,,,,,,,,,,,,,280,,,,723,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,512,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,320,,,,725,,,725,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,310,,,,723,,,725,,,,,,|,,,,,,,,,,,,,,,,535,,,,723,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,310,,,,723,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,725,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,310,,,,723,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,516,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,310,,,,723,,,,,,,,,,,,|,,,,,,,,,,,,,535,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,310,,,,723,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,320,,,,723,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,723,,,,,,,,,,,,,,|,,,,,,,,,,,290,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,254,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,7,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,217,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,218,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,219,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,218,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,219,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,218,,,,,,,,,,,,,,,,,,|,,,,,,,,,,526,219,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,218,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,219,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,218,,,,,,,,,,,,,,,,,,|,,,,,,,,766,,,220,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,715,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,718,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,252,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||"; _local35 = "240,30,3,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,6,,252,,,|,,,,,,,,,,,,,,,,,,,,,50,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,55,,,,,,|,,,,,,,,,,,,,,,,,,,,,51,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,53,,,523,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,4,253,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,535,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,280,,,|,,,,,,,,,,,,,,,,,,,,,,,733,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,534,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,310,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,535,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,112,,,,,709,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,205,,,,221|,,,,,,,,,,,,,,,,,,,,,,,,,102,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,530,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,109,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,710,212,,,,223|,,,,,,,,,,,,,,,,,,,,,,,,,250,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,533,,,,,|,,,,,,,,,,,,,,,,,,,,112,,,,709,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,206,,,,221|,,,,,,,,,,,,,,,,,,,,,,,,,102,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,527,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,109,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,710,212,,,,223|,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725,|,,,,,,,,,,,,,,,,,,,,,,733,,533,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,532,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,310,,,,723,,|,,,,,,,,,,,,,,,,,,,,,,,532,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,112,,,,709,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,207,,,,221,,|,,,,,,,,,,,,,,,,,,,,,,,102,,,,,531,|,,,,,,,,,,,,,,,,,,,,,,,529,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,109,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,109,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,710,212,,,,223,,|,,,,,,,,,,,,,,,,,,,,,,,280,,,,723,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,534,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,254,,,,752,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,7,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,217,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,525,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,219,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,218,,,,,,|,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,715,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,716,712,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,252,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||"; _local36 = "240,30,4,6,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,6,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,53,,53,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,53,,53,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,526,252,,,,,,,,,,,,,|,,,,,,,,,,53,,53,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,252,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,5,253,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,350,,,,725,,,,,,,,,|,,,,,,,,,,,,,,729,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,350,,,,725,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,350,,,,725,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,512,,,,,,,706,103,,,,,,,,290,,,,,,,,,,|,,,,,,,,,,,,,,,,729,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,320,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,320,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,740,,,,,,,,,,,,,,|,,515,,,,,,,706,103,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,270,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|720,,720,,,,,,425,,,,,,,,,352,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,517,,,,,,,,,,,,,,,,,,,,,,,,,,,,|719,,,719,,,,,,430,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,731,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,351,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,721,,,721,,,,,,430,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,291,,,,,,,,,,|,,,,,,,,406,,,,,,,,,,,,,,,,,,,,,|,721,,,721,,,,,,,,,,,,,,,711,,,,,,,,,,|,,,,,,,,,,110,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,521,,,,,,,,,,,,,,,,,321,,,,,,,,,,,|,,,,,,,,,,420,,,,,,,,,,,,,,,,,,,|,719,,,719,,,,,,,,,,,,731,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,321,,,,,,,,,,,,|,721,,721,,,,,,400,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,406,,,,,,,,,,291,,,,,,,,,,,,|,721,,721,,,,,,,,,,,,,,711,,,,,,,,,,,,|,518,,,,,,,,110,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,390,,,,,,,,351,,,,,,,,,,,,|,720,,,720,,,,,,425,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,731,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,720,,,720,,,,,,425,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,351,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|721,,,721,,,721,,,,,,425,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,522,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,406,,,,,,,,,291,,,,721,,,721,,,|,,,,,,,,,,,,,,,,,,,711,,,,,,,,,,|721,,,721,,,721,,,,,,110,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,410,,,,,,,351,,,,721,,,721,,,721|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,722,,,722,,,,,,,,,,,,,,,,,,,,,,,|,,720,,,720,,,,,,410,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,333,,,,749,,,749,,|,720,,,720,,,,,,410,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,738,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,350,,,,726,,,725,|720,,,720,,,,,,410,,,,,,,,,,,,,,,,723,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,206,116,,221,,,,221|,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531,,531|,,,,,,,,,,,,,,,,,,,,,,527,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,212,116,,223,,,,223|,,,,,,,,,,,,,,,,,,,,,,290,,,,725,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,254,,,,752,,,752|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,7,,,,,,,,252,,,,728,,,728|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,217,,,,728,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,219,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,219,,,,,,,|,,,,,,,,,,,,,,,,,,,,,523,218,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,219,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,219,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,218,,,,,,,|,,,,,,,,,,,,,,,,,,,766,,,220,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,715,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,716,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,252,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||"; _local37 = "240,30,4,3,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,6,,252,,,,,|,,,,,,,,,,,,,,,,,,,,54,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,52,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,57,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,56,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,525,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,4,253,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,300,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,512,,,,,,706,104,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,300,,,,724,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,310,,,,723,,,,|,,,,,,,,,,,,,,,,,,,,,532,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,515,,,,,,,706,104,,,,,300,,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,707,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,300,,,,723,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,201,,,,,,,,,,|,,,,,,,,,,,,,,,,,,320,,,,725,,,,,,,|,,,,,,,,,,,,,,,,,,532,,,,,,,,,,,|,,,,,,,,,707,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,515,,,,,,706,104,,,,,,,300,,,,724,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,300,,,,724,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,250,,,724,,,,,,,,,,|,,,,,,,,,,,,,736,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,250,,,724,,,,,,,,,,|,,,,,,,,,,,,,730,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,330,,,,724,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,330,,,,724,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,370,,,,724,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,516,,,,,,,,,115,,,,,,723,,,,,,,|,,,,,,,,,,,,,,,705,,,330,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,330,,,,724,,,,,,|,,,,,,,,,,,,,,,,,,,534,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,330,,,,724,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,105,,,,,,,,,,,,,|,,,,,,,,,,,,,,,705,,,,,,380,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,515,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,350,,,,725,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,736,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,340,,,,723,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,535,,,,,,,|,,,,,,,,,,,,,,,,,,,,733,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,330,,,,724,,|,,,,,,,,,,,,,,,,,,,,,,,533,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,330,,,,724,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,535,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,330,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,380,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,709,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,205,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,102,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,530,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,710,212,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,290,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,515,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,270,,,|,,,,,,,,,,,,,,,,,,,,,,,,,535,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,535,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,535,270,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,254,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,712,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,217,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,524,218,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,218,,,|,,,,,,,,,,,,,,,,,,,,,,,766,,,220,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,715,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,716,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,252,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||||||||"; _local38 = "240,30,4,8,1,1,1,1,1,1,1,1;,,,,,,,,,,6,,252,,,,,,,,,,,,,,,,,|,,,,,,54,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,54,,,,,,,,,,,,,,,,,,,,,|,,,,,,54,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,,54,,,,,,,,,,,,,,,,,,,,,|,,,,,,54,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,54,,,,252,,,,,,,,,,,,,,,,,|,,,,,,54,,,,,523,,,,,,,,,,,,,,,,,,|,,,,,,,,54,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,252,,,,,,,,,,,,,,,,,|,,,,,,,,,,,5,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,712,253,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,535,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,350,,,,725,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,534,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,350,,,,725,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|511,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,270,,,,,,,,,,,,,,,|,,,,,,,,,,,,,534,,,,,,,,,,,,,,,,|,,,,,705,115,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,213,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,450,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,444,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,445,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,444,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,445,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,444,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,455,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,214,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,250,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,516,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,320,,,,725,,,,,,,,,,,,|,,,,,,,,,,,,,534,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,535,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,320,,,,725,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,105,,,,,,,,,,,,,,,,,,,,,,|,,,,,,705,,,,,535,290,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,534,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|513,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,270,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,213,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,450,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,445,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,445,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,444,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,440,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,440,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,455,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,214,,,,725,,,,,,,,,,,,,|511,,,,,,,,,,,,270,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,535,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,350,,,,,,,725,,,,,,,,,,|,,,,,,,,,,,,,,,,723,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,535,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,340,,,,723,,,723,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,533,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,330,,,,724,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,515,,,,,,,,,,,736,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,330,,,,724,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,330,,,,724,,,,,,,,,|,,,,,,,,,,,,,,,,535,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,330,,,,724,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,533,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,350,,,,725,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,535,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,380,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,360,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,370,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,380,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,514,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,370,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,360,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,380,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,254,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,7,,,,,,,712,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,712,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,217,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,524,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,219,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,218,,,,,,,,,,|,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,715,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,718,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,252,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||||"; _local39 = "240,30,4,5,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,,,,,,,,,6,,252,|,,,,,,,,,,,,,,,,,,,,,,,50,,,,,,|,,,,,,,,,,,,,,,,,,,,,51,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,54,,,524,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,51,,55,52,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,252,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,712,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,5,253,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,330,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,280|,,,,,,,,,,,,,,,514,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,535,|,,,,,,,,,,,,,,,,,,,,,,,,,,732,,310,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,310,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,738,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,533,201,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,213,,|,,,,,,,,,,,,,,,,,,,,,,,,,,100,450,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,100,440,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,100,455,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,112,,,,,214,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,205,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,,101,111,|,,,,,,,,,,,,,,,,,,,,,,,,,,,527,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,212,116,|,,,,,,,,,,,,,,,,,,,,,,,,,,320,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,535,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,729,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,725|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,513,,,,,,,706,104,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,707,,,,,535,201,,,,723|,,,,,,,,,,,,,,,,,,,,,,,,,330,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,201,,,|,,,,,,,,,,,,,,,,,,,,,,,,,320,,,,724|,,,,,,,,,,,,,,,,,,,,,,,738,,534,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,724|,,,,,,,,,,,,,,,,,,,,,,,,534,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,201,,,,|,,,,,,,,,,,,,,,,,,,,,,,,300,,,,723,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,112,,,,,201,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,206,116,,,221,|,,,,,,,,,,,,,,,,,,,,,,,,101,111,,,,531|,,,,,,,,,,,,,,,,,,,,,,,,527,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,212,116,,,223,|,,,,,,,,,,,,,,,,,,,,,,,,290,,,,725,|,,,,,,,,,,,513,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,254,,,,752,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,7,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,217,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,523,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,219,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,218,,,,,|,,,,,,,,,,,,,,,,,,,,,766,,,220,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,715,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,717,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,712,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,252,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|||||||||||"; _local40 = "240,30,4,8,1,1,1,1,1,1,1,1;,,,,,,,,,,,,,,,,,,6,,252,,,,,,,,,|,,,,,,,,,,,,,,,50,,,,,,,,,,,,,,|,,,,,,,,,,,,,51,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,56,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,54,,,,252,,,,,,,,,|,,,,,,,,,,,,,,57,55,,,,526,,,,,,,,,,|,,,,,,,,,,,,,53,,,52,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,,5,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,253,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,201,,,,,,,,,|,,,,,,,,,,,,,,,,,,,533,201,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,280,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,532,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,,,,,,,,,,,,,534,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,535,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,513,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,112,,,,709,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,207,,,,221,,,,,|,,,,,,,,,,,,,,,,,,,,102,,,,,531,,,,|,,,,,,,,,,,,,,,,,,,,527,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,710,212,,,,223,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,535,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,,,,,,,,,,,,,532,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,533,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,532,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,511,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,534,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,290,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,254,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,252,,,,,,,,,|,,,,,,,,,,,,7,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,217,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,524,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,219,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,218,,,,,,,,,|,,,,,,,,,,,,,,,,,766,,,220,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,715,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,716,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,252,,,,,,,,,|,,,,,,,,,,,,,,,,,,717,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||||||||"; datos = ["", _local1, _local2, _local3, _local4, _local5, _local6, _local7, _local8, _local9, _local10, _local11, _local12, _local13, _local14, _local15, _local16, _local17, _local18, _local19, _local20, _local21, _local22, _local23, _local24, _local25, _local26, _local27, _local28, _local29, _local30, _local31, _local32, _local33, _local34, _local35, _local36, _local37, _local38, _local39, _local40]; } } }//package
Section 244
//NumericStepperDownArrow_disabledSkin (NumericStepperDownArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_disabledSkin extends MovieClip { } }//package
Section 245
//NumericStepperDownArrow_downSkin (NumericStepperDownArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_downSkin extends MovieClip { } }//package
Section 246
//NumericStepperDownArrow_overSkin (NumericStepperDownArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_overSkin extends MovieClip { } }//package
Section 247
//NumericStepperDownArrow_upSkin (NumericStepperDownArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_upSkin extends MovieClip { } }//package
Section 248
//NumericStepperUpArrow_disabledSkin (NumericStepperUpArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_disabledSkin extends MovieClip { } }//package
Section 249
//NumericStepperUpArrow_downSkin (NumericStepperUpArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_downSkin extends MovieClip { } }//package
Section 250
//NumericStepperUpArrow_overSkin (NumericStepperUpArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_overSkin extends MovieClip { } }//package
Section 251
//NumericStepperUpArrow_upSkin (NumericStepperUpArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_upSkin extends MovieClip { } }//package
Section 252
//panelAyuda (panelAyuda) package { import flash.display.*; public dynamic class panelAyuda extends MovieClip { public var cerrar_ayuda:SimpleButton; } }//package
Section 253
//panelBorrarTodo (panelBorrarTodo) package { import flash.display.*; public dynamic class panelBorrarTodo extends MovieClip { public var boton_si_borrar:SimpleButton; public var boton_no_borrar:SimpleButton; } }//package
Section 254
//panelErrorEditor (panelErrorEditor) package { import flash.display.*; public dynamic class panelErrorEditor extends MovieClip { public var boton_ok_error:SimpleButton; } }//package
Section 255
//panelSubirNivel (panelSubirNivel) package { import flash.display.*; import flash.text.*; public dynamic class panelSubirNivel extends MovieClip { public var nombre_nivel:TextField; public var boton_cancelar_nivel:SimpleButton; public var subido:TextField; public var nombre_autor:TextField; public var comentarios:TextField; public var boton_subir_nivel:SimpleButton; public var cadena_nivel:TextField; } }//package
Section 256
//PantallaJuego (PantallaJuego) package { import flash.display.*; import flash.events.*; public class PantallaJuego extends MovieClip { public var main_class:MovieClip; public function PantallaJuego(){ addEventListener(Event.ADDED_TO_STAGE, manejarAgregadoEscena); } private function descargarPantalla(){ VariablesGlobales.motor.removeEventListener(MotorEvent.SIGUIENTE_NIVEL, manejarSiguienteNivel); VariablesGlobales.motor.removeEventListener(MotorEvent.REINICIAR_NIVEL, manejarReiniciarNivel); VariablesGlobales.motor.removeEventListener(MotorEvent.SALIR_NIVEL, manejarSalirNivel); removeEventListener(Event.ENTER_FRAME, nuevoFrame); VariablesGlobales.SoundMan.stopAllSounds(); main_class.cierra_pantalla(this); } private function manejarAgregadoEscena(_arg1:Event):void{ VariablesGlobales.nivelPruebaActual = ""; VariablesGlobales.motor = new Motor(this); VariablesGlobales.motor.iniciaMotor(); VariablesGlobales.motor.cargarNivel(); VariablesGlobales.motor.addEventListener(MotorEvent.SIGUIENTE_NIVEL, manejarSiguienteNivel); VariablesGlobales.motor.addEventListener(MotorEvent.REINICIAR_NIVEL, manejarReiniciarNivel); VariablesGlobales.motor.addEventListener(MotorEvent.SALIR_NIVEL, manejarSalirNivel); addEventListener(Event.ENTER_FRAME, nuevoFrame); } private function manejarReiniciarNivel(_arg1:MotorEvent):void{ VariablesGlobales.motor.reiniciarNivel(); } private function manejarSalirNivel(_arg1:MotorEvent):void{ VariablesGlobales.motor.finalizaMotor(); main_class.abre_pantalla(new Principal()); descargarPantalla(); } private function manejarSiguienteNivel(_arg1:MotorEvent):void{ trace(VariablesGlobales.indiceNivelActual); trace(VariablesGlobales.indiceNivelMaximo); VariablesGlobales.indiceNivelActual = (VariablesGlobales.indiceNivelActual + 1); if (VariablesGlobales.indiceNivelActual > VariablesGlobales.indiceNivelMaximo){ VariablesGlobales.indiceNivelMaximo = VariablesGlobales.indiceNivelActual; }; if (VariablesGlobales.indiceNivelActual > 40){ VariablesGlobales.indiceNivelMaximo = 40; VariablesGlobales.motor.finalizaMotor(); if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.WORK_DONE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.WORK_DONE, VariablesGlobales.contenedorPadre); main_class.abre_pantalla(new Final()); } else { main_class.abre_pantalla(new Misiones()); }; descargarPantalla(); } else { if (VariablesGlobales.indiceNivelActual > VariablesGlobales.indiceNivelMaximo){ VariablesGlobales.indiceNivelActual = VariablesGlobales.indiceNivelMaximo; VariablesGlobales.motor.finalizaMotor(); main_class.abre_pantalla(new Misiones()); descargarPantalla(); } else { VariablesGlobales.nivelActual = VariablesGlobales.nivelesJuego.datos[VariablesGlobales.indiceNivelActual]; VariablesGlobales.motor.reiniciarNivel(); }; }; } private function nuevoFrame(_arg1:Event):void{ VariablesGlobales.motor.actualiza(); VariablesGlobales.camara.actualizaAhora(); } } }//package
Section 257
//parrot_humo (parrot_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class parrot_humo extends MovieClip { public function parrot_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 258
//Piedra (Piedra) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Piedra extends MovieClip { public function Piedra(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 259
//PlataformaAscensor (PlataformaAscensor) package { import flash.display.*; public dynamic class PlataformaAscensor extends MovieClip { } }//package
Section 260
//PlataformaDinamicaHorizontal (PlataformaDinamicaHorizontal) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Common.Math.*; public class PlataformaDinamicaHorizontal extends TerrenoRuta { var tiempo_espera:Number;// = 5000 var limite_inferior:Number; var limite_superior:Number; var margen_movimiento:Number;// = 5 var tiempo_espera_fin:Number;// = 0 var en_espera:Boolean;// = false var direccion_desplazamiento:Number;// = 1 var en_movimiento:Boolean;// = true var desplazamiento_actual:Number;// = 1 public function PlataformaDinamicaHorizontal(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:Array; desplazamiento_actual = 1; direccion_desplazamiento = 1; tiempo_espera = 5000; tiempo_espera_fin = 0; en_espera = false; en_movimiento = true; margen_movimiento = 5; _local3 = new PlataformaAscensor(); _local5 = [[new Point(0, 0), new Point(300, 0), new Point(300, 30), new Point(0, 30)]]; limite_superior = _arg2.y; limite_inferior = (_arg2.y + (margen_movimiento * VariablesGlobales.LADO_TILE)); desplazamiento_actual = (desplazamiento_actual * direccion_desplazamiento); super(_arg1, _local3, _arg2, _local5); } public function colision_lateral(){ if (en_movimiento){ trace("plataforma cambio sentido"); en_movimiento = false; en_espera = true; direccion_desplazamiento = (direccion_desplazamiento * -1); desplazamiento_actual = (desplazamiento_actual * direccion_desplazamiento); }; } override protected function actualizacionEspecificaHijo():void{ var _local1:Number; if (en_movimiento){ _local1 = (cuerpo.GetPosition().y * VariablesGlobales.RATIO); _local1 = (_local1 + desplazamiento_actual); if (desplazamiento_actual > 0){ if (_local1 > limite_inferior){ _local1 = limite_inferior; en_movimiento = false; en_espera = true; tiempo_espera_fin = (getTimer() + 1000); }; } else { if (_local1 < limite_superior){ _local1 = limite_superior; en_movimiento = false; en_espera = true; tiempo_espera_fin = (getTimer() + tiempo_espera); }; }; cuerpo.SetXForm(new b2Vec2(cuerpo.GetPosition().x, (_local1 / VariablesGlobales.RATIO)), _cuerpo.GetAngle()); } else { if (en_espera){ if (getTimer() > tiempo_espera_fin){ en_espera = false; en_movimiento = true; direccion_desplazamiento = (direccion_desplazamiento * -1); desplazamiento_actual = (desplazamiento_actual * direccion_desplazamiento); }; }; }; super.actualizacionEspecificaHijo(); } } }//package
Section 261
//preload (preload) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class preload extends MovieClip { public function preload(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 262
//preloader_sc (preloader_sc) package { import flash.display.*; import flash.text.*; public dynamic class preloader_sc extends MovieClip { public var boton_twitter:SimpleButton; public var boton_tanoku:SimpleButton; public var porc:TextField; public var jugar:SimpleButton; public var boton_sponsor:SimpleButton; } }//package
Section 263
//Principal (Principal) package { import flash.display.*; import flash.events.*; public class Principal extends MovieClip { public var tanoku:SimpleButton; public var musica:MovieClip; public var logros:SimpleButton; public var sponsor:SimpleButton; public var editor:SimpleButton; public var puntuaciones:SimpleButton; public var main_class:MovieClip; public var twitter:SimpleButton; public var creditos:SimpleButton; public var jugar:SimpleButton; public var moregames:SimpleButton; public var sonido:MovieClip; public function Principal(){ sonido.addEventListener(MouseEvent.CLICK, on_button_clicked); musica.addEventListener(MouseEvent.CLICK, on_button_clicked); jugar.addEventListener(MouseEvent.CLICK, on_button_clicked); editor.addEventListener(MouseEvent.CLICK, on_button_clicked); logros.addEventListener(MouseEvent.CLICK, on_button_clicked); puntuaciones.addEventListener(MouseEvent.CLICK, on_button_clicked); creditos.addEventListener(MouseEvent.CLICK, on_button_clicked); moregames.addEventListener(MouseEvent.CLICK, on_button_clicked); sponsor.addEventListener(MouseEvent.CLICK, on_button_clicked); tanoku.addEventListener(MouseEvent.CLICK, on_button_clicked); twitter.addEventListener(MouseEvent.CLICK, on_button_clicked); EstadoIconosAudio(); VariablesGlobales.MusicMan.stopAllSounds(false); VariablesGlobales.SoundMan.stopAllSounds(false); if (VariablesGlobales.MusicMan.isSoundPaused("principal1")){ VariablesGlobales.MusicMan.playSound("principal1", 0.5, 0, 99); }; } private function EstadoIconosAudio():void{ if (VariablesGlobales.SoundMan.Activo){ sonido.gotoAndStop(1); } else { sonido.gotoAndStop(2); }; if (VariablesGlobales.MusicMan.Activo){ musica.gotoAndStop(1); if (VariablesGlobales.MusicMan.isSoundPaused("principal1")){ VariablesGlobales.MusicMan.playSound("principal1", 0.5, 0, 99); }; } else { musica.gotoAndStop(2); }; VariablesGlobales.savegameMan.salvarPartida(); } public function on_button_clicked(_arg1:MouseEvent){ VariablesGlobales.SoundMan.playSound("click", 1, 0, 0); switch (_arg1.target.name){ case "jugar": VariablesGlobales.nivelEditor = false; main_class.abre_pantalla(new Misiones()); main_class.cierra_pantalla(this); break; case "editor": break; case "creditos": VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.EMPLOYEES, this.parent); main_class.abre_pantalla(new Creditos()); break; case "logros": main_class.abre_pantalla(new Logros()); break; case "musica": VariablesGlobales.MusicMan.Mute(); EstadoIconosAudio(); break; case "sonido": VariablesGlobales.SoundMan.Mute(); EstadoIconosAudio(); break; case "puntuaciones": VariablesGlobales.AbreWeb(VariablesGlobales.WEB_SOLUCION); break; case "moregames": VariablesGlobales.AbreWeb(VariablesGlobales.WEB_SPONSOR); break; case "sponsor": VariablesGlobales.AbreWeb(VariablesGlobales.WEB_SPONSOR); VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.BOSS, this.parent); break; case "tanoku": VariablesGlobales.AbreWeb(VariablesGlobales.WEB_TANOKU); break; case "twitter": VariablesGlobales.AbreWeb(VariablesGlobales.WEB_TWITER); break; default: trace((_arg1.target.name + " UNDEFINED")); break; }; } } }//package
Section 264
//principal1 (principal1) package { import flash.media.*; public dynamic class principal1 extends Sound { } }//package
Section 265
//Proyectil (Proyectil) package { import flash.display.*; import flash.utils.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class Proyectil extends Actor { var direccion_movimiento:b2Vec2; var tiempo_respawn:Number;// = 5000 var frame_espera_actual:int;// = 0 var posicion_inicial:b2Vec2; var fin_tiempo_respawn:Number;// = 0 var frames_espera:int;// = 20 var en_movimiento:Boolean;// = true public function Proyectil(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:Point, _arg4:b2Vec2, _arg5:Boolean=false){ var _local6:b2Body; var _local7:b2BodyDef; var _local8:b2CircleDef; en_movimiento = true; tiempo_respawn = 5000; fin_tiempo_respawn = 0; frames_espera = 20; frame_espera_actual = 0; _local7 = new b2BodyDef(); _local8 = new b2CircleDef(); _local8.density = 100; _local8.radius = (15 / VariablesGlobales.RATIO); _local8.friction = 0.3; _local8.restitution = 0; _arg3.x = (_arg3.x + (VariablesGlobales.LADO_TILE / 2)); _arg3.y = (_arg3.y + (VariablesGlobales.LADO_TILE / 2)); _local7.position.Set((_arg3.x / VariablesGlobales.RATIO), (_arg3.y / VariablesGlobales.RATIO)); _local6 = VariablesGlobales.mundo.CreateBody(_local7); _local6.CreateShape(_local8); _local6.SetMassFromShapes(); if (_arg5){ _arg2.scaleX = -1; }; _arg1.addChild(_arg2); direccion_movimiento = _arg4; posicion_inicial = new b2Vec2(_arg3.x, _arg3.y); super(_local6, _arg2); } public function llegaFina():void{ if (en_movimiento){ en_movimiento = false; frame_espera_actual = 0; fin_tiempo_respawn = (getTimer() + tiempo_respawn); disfraz.visible = false; }; } public function impacto():void{ if (en_movimiento){ en_movimiento = false; frame_espera_actual = frames_espera; MovieClip(disfraz).gotoAndStop(2); }; } override protected function actualizacionEspecificaHijo():void{ var _local1:Number; var _local2:Number; if (en_movimiento){ cuerpo.SetLinearVelocity(new b2Vec2(0, 0)); if (direccion_movimiento.x == 0){ _local1 = (posicion_inicial.x / VariablesGlobales.RATIO); } else { _local1 = (cuerpo.GetPosition().x + (direccion_movimiento.x / VariablesGlobales.RATIO)); }; if (direccion_movimiento.y == 0){ _local2 = (posicion_inicial.y / VariablesGlobales.RATIO); } else { _local2 = (cuerpo.GetPosition().y + (direccion_movimiento.y / VariablesGlobales.RATIO)); }; cuerpo.SetXForm(new b2Vec2(_local1, _local2), 0); } else { if (frame_espera_actual > 0){ frame_espera_actual = (frame_espera_actual - 1); cuerpo.SetLinearVelocity(new b2Vec2(0, 0)); cuerpo.SetXForm(new b2Vec2((cuerpo.GetPosition().x + (direccion_movimiento.x / VariablesGlobales.RATIO)), (cuerpo.GetPosition().y + (direccion_movimiento.y / VariablesGlobales.RATIO))), 0); fin_tiempo_respawn = (getTimer() + tiempo_respawn); } else { disfraz.visible = false; if (getTimer() > fin_tiempo_respawn){ en_movimiento = true; MovieClip(disfraz).gotoAndStop(1); disfraz.visible = true; cuerpo.SetXForm(new b2Vec2((posicion_inicial.x / VariablesGlobales.RATIO), (posicion_inicial.y / VariablesGlobales.RATIO)), 0); } else { cuerpo.SetLinearVelocity(new b2Vec2(0, 0)); cuerpo.SetXForm(new b2Vec2((posicion_inicial.x / VariablesGlobales.RATIO), ((posicion_inicial.y - 500) / VariablesGlobales.RATIO)), 0); }; }; }; super.actualizacionEspecificaHijo(); } } }//package
Section 266
//PuenteCuerdas (PuenteCuerdas) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class PuenteCuerdas extends Actor { private var _lista_tablones:Array; public function PuenteCuerdas(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; var _local7:b2Body; var _local8:int; var _local9:b2Vec2; var _local10:b2Body; var _local11:b2PolygonDef; var _local12:b2BodyDef; var _local13:b2RevoluteJointDef; var _local14:int; var _local15:b2Body; _local3 = new Sprite(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((300 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((300 / VariablesGlobales.RATIO), (15 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (15 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); _local7 = VariablesGlobales.mundo.GetGroundBody(); _local9 = new b2Vec2(); _local11 = new b2PolygonDef(); _local11.SetAsBox((18 / VariablesGlobales.RATIO), (7 / VariablesGlobales.RATIO)); _local11.density = 20; _local11.friction = 0.2; _local12 = new b2BodyDef(); _local13 = new b2RevoluteJointDef(); _local14 = 7; _local13.lowerAngle = (-15 / (180 / Math.PI)); _local13.upperAngle = (15 / (180 / Math.PI)); _local13.enableLimit = true; _lista_tablones = new Array(); _local15 = _local7; _local8 = 0; while (_local8 < _local14) { _local12.position.Set((((_arg2.x + 22) + (43 * _local8)) / VariablesGlobales.RATIO), ((_arg2.y + 7) / VariablesGlobales.RATIO)); _local10 = VariablesGlobales.mundo.CreateBody(_local12); _local3 = new TablonPuente(); _arg1.addChild(_local3); _local10.SetUserData(_local3); _local10.CreateShape(_local11); _local10.SetMassFromShapes(); _lista_tablones.push(_local10); _local9.Set(((_arg2.x + (43 * _local8)) / VariablesGlobales.RATIO), ((_arg2.y + 7) / VariablesGlobales.RATIO)); _local13.Initialize(_local15, _local10, _local9); VariablesGlobales.mundo.CreateJoint(_local13); _local15 = _local10; _local8++; }; _local9.Set(((_arg2.x + (43 * _local14)) / VariablesGlobales.RATIO), ((_arg2.y + 7) / VariablesGlobales.RATIO)); _local13.Initialize(_local15, _local7, _local9); VariablesGlobales.mundo.CreateJoint(_local13); } override public function destruir():void{ var _local1:int; var _local2:MovieClip; _local1 = 0; while (_local1 < _lista_tablones.length) { _local2 = MovieClip(b2Body(_lista_tablones[_local1]).GetUserData()); _local2.parent.removeChild(_local2); _local1++; }; super.destruir(); } override protected function actualizacionEspecificaHijo():void{ var _local1:int; var _local2:MovieClip; var _local3:b2Body; _local1 = 0; while (_local1 < _lista_tablones.length) { _local2 = MovieClip(b2Body(_lista_tablones[_local1]).GetUserData()); _local3 = b2Body(_lista_tablones[_local1]); _local2.x = ((_local3.GetPosition().x * VariablesGlobales.RATIO) - 22); _local2.y = ((_local3.GetPosition().y * VariablesGlobales.RATIO) - (7 + (7 - _local1))); _local2.rotation = ((_local3.GetAngle() * 180) / Math.PI); _local1++; }; super.actualizacionEspecificaHijo(); } } }//package
Section 267
//Remolque1 (Remolque1) package { import flash.display.*; public dynamic class Remolque1 extends MovieClip { } }//package
Section 268
//Remolque2 (Remolque2) package { import flash.display.*; public dynamic class Remolque2 extends MovieClip { } }//package
Section 269
//Remolque3 (Remolque3) package { import flash.display.*; public dynamic class Remolque3 extends MovieClip { } }//package
Section 270
//Rueda (Rueda) package { import flash.display.*; public dynamic class Rueda extends MovieClip { } }//package
Section 271
//SalidaCueva (SalidaCueva) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class SalidaCueva extends Actor { public function SalidaCueva(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new Sprite(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((30 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((30 / VariablesGlobales.RATIO), (300 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (300 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); } } }//package
Section 272
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 273
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 274
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 275
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 276
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 277
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 278
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 279
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 280
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 281
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 282
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 283
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 284
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 285
//TablonPuente (TablonPuente) package { import flash.display.*; public dynamic class TablonPuente extends MovieClip { } }//package
Section 286
//TerrenoAceite (TerrenoAceite) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class TerrenoAceite extends Actor { public function TerrenoAceite(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:Point, _arg4:Array){ var _local5:b2Body; _local5 = crearCuerpoDesdeCoordenadas(_arg4, _arg3); _arg1.addChild(_arg2); super(_local5, _arg2); } private function crearCuerpoDesdeCoordenadas(_arg1:Array, _arg2:Point):b2Body{ var _local3:Array; var _local4:Array; var _local5:b2BodyDef; var _local6:b2Body; var _local7:b2ShapeDef; var _local8:b2PolygonDef; var _local9:int; var _local10:Point; _local3 = []; for each (_local4 in _arg1) { _local8 = new b2PolygonDef(); _local8.vertexCount = _local4.length; _local9 = 0; while (_local9 < _local4.length) { _local10 = _local4[_local9]; b2Vec2(_local8.vertices[_local9]).Set((_local10.x / VariablesGlobales.RATIO), (_local10.y / VariablesGlobales.RATIO)); _local9++; }; _local8.density = 0; _local8.friction = 0; _local8.restitution = 0; _local8.userData = this; _local3.push(_local8); }; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.allowSleep = false; _local6 = VariablesGlobales.mundo.CreateBody(_local5); for each (_local7 in _local3) { _local6.CreateShape(_local7); }; _local6.SetMassFromShapes(); return (_local6); } } }//package
Section 287
//TerrenoBarro (TerrenoBarro) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class TerrenoBarro extends Actor { public function TerrenoBarro(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new Sprite(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((60 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((60 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (30 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); super(_local6, _local3); } override protected function actualizacionEspecificaHijo():void{ super.actualizacionEspecificaHijo(); } } }//package
Section 288
//TerrenoInvisible (TerrenoInvisible) package { import flash.display.*; import flash.geom.*; public class TerrenoInvisible extends EstaticoActor { public function TerrenoInvisible(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:Point, _arg4:Array){ super(_arg1, _arg2, _arg3, _arg4); this.disfraz.visible = false; } } }//package
Section 289
//TerrenoRuta (TerrenoRuta) package { import flash.display.*; import flash.geom.*; public class TerrenoRuta extends EstaticoActor { public function TerrenoRuta(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:Point, _arg4:Array){ super(_arg1, _arg2, _arg3, _arg4); } } }//package
Section 290
//TerrenoTierra (TerrenoTierra) package { import flash.display.*; import flash.geom.*; public class TerrenoTierra extends TerrenoRuta { public function TerrenoTierra(_arg1:DisplayObjectContainer, _arg2:DisplayObject, _arg3:Point, _arg4:Array){ super(_arg1, _arg2, _arg3, _arg4); } } }//package
Section 291
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 292
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 293
//TileList_skin (TileList_skin) package { import flash.display.*; public dynamic class TileList_skin extends MovieClip { } }//package
Section 294
//Tortuga (Tortuga) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class Tortuga extends MovieClip { public function Tortuga(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 295
//turtle_humo (turtle_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class turtle_humo extends MovieClip { public function turtle_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 296
//VariablesGlobales (VariablesGlobales) package { import flash.display.*; import flash.geom.*; import com.tanoku.sonido.*; import Box2D.Dynamics.*; import flash.net.*; public class VariablesGlobales { public static const WEB_NIVELES:String = "http://tanoku.com/eng2/contact_bombardment.html"; public static const PASO_TIEMPO:Number = 0.02; public static const ALTO_PANTALLA:int = 450; public static const MAX_ALTO_TILE:int = 30; public static const BOMBA_MISIL:int = 0; public static const WEB_TANOKU:String = "http://tanoku.com"; public static const BOMBA_ALIEN:int = 2; public static const MAX_ANCHO_TILE:int = 240; public static const GRAVEDAD:Number = 9.8; public static const DERECHA:int = 1; public static const WEB_TWITER:String = "http://twitter.com/armorgames"; public static const ANCHO_PANTALLA:int = 780; public static const IZQUIERDA:int = -1; public static const BOMBA_RETARDADA:int = 1; public static const LADO_TILE:int = 30; public static const WEB_SOLUCION:String = "http://armorgames.com/guide/zoo-transport-video-guide"; public static const BOMBA_GOMA:int = 4; public static const BOMBA_BOLA:int = 3; public static const WEB_SPONSOR:String = "http://armorgames.com/"; public static const RATIO:Number = 30; private static var _tiempo_acelerador:int = 0; private static var _tiempo_incio_nivel:Number = 0; private static var _aliens_caidos_1_tiro:int = 0; private static var _indiceNivelMaximo:int = 1; private static var _contenedorPadre:MovieClip; private static var _leon_transportado:Boolean = false; private static var _savegameMan:ManagerPartidas; private static var _camara:Camara; private static var _nivelEditor:Boolean = true; private static var _nivelPruebaActual:String = null; private static var _logrosMan:ManagerLogros; private static var _nivelActual:String = null; private static var _motor:Motor; private static var _nivelesJuego:Niveles = new Niveles(); private static var _mostrarAyuda:Boolean = true; private static var _retorno_almacen:int = 0; private static var _bombas_usadas:Array = [false, false, false, false, false]; private static var _numero_bombas_fuera_nivel:int = 0; private static var _limitesMundo:Rectangle; private static var _editor:Editor; private static var indiceCaja:int = 0; private static var _numero_cajas_perdidas:int = 0; private static var _numero_cambio_bomba:int = 0; private static var _aliens_muertos_1_tiro:int = 0; private static var _tiempo_quieto:int = 0; private static var _indiceNivelActual:int = 1; private static var soundMan:SoundManager; private static var _mundo:b2World; private static var _numero_rebotes_bomba:int = 0; private static var _cajas_hielo_destruidas:int = 0; private static var _nivelesCargados:int = 0; private static var _satelite_movido:int = 0; private static var musicMan:MusicManager; public static function get SoundMan():SoundManager{ return (soundMan); } public static function get nivelEditor():Boolean{ return (_nivelEditor); } public static function set numero_rebotes_bomba(_arg1:int):void{ _numero_rebotes_bomba = _arg1; } public static function get camara():Camara{ return (_camara); } public static function set nivelesJuego(_arg1:Niveles):void{ _nivelesJuego = _arg1; } public static function set nivelEditor(_arg1:Boolean):void{ _nivelEditor = _arg1; } public static function get tiempo_acelerador():int{ return (_tiempo_acelerador); } public static function get MusicMan():MusicManager{ return (musicMan); } public static function get aliens_caidos_1_tiro():int{ return (_aliens_caidos_1_tiro); } public static function get nivelActual():String{ return (_nivelActual); } public static function set MusicMan(_arg1:MusicManager):void{ musicMan = _arg1; } public static function set mostrarAyuda(_arg1:Boolean):void{ _mostrarAyuda = _arg1; } public static function set numero_cajas_perdidas(_arg1:int):void{ _numero_cajas_perdidas = _arg1; } public static function set motor(_arg1:Motor):void{ _motor = _arg1; } public static function get savegameMan():ManagerPartidas{ return (_savegameMan); } public static function set camara(_arg1:Camara):void{ _camara = _arg1; } public static function get indiceNivelActual():int{ return (_indiceNivelActual); } public static function get numero_bombas_fuera_nivel():int{ return (_numero_bombas_fuera_nivel); } public static function set indiceNivelMaximo(_arg1:int):void{ _indiceNivelMaximo = _arg1; } public static function get satelite_movido():int{ return (_satelite_movido); } public static function get nivelesCargados():int{ return (_nivelesCargados); } public static function set IndiceCaja(_arg1:int):void{ indiceCaja = _arg1; } public static function set tiempo_acelerador(_arg1:int):void{ _tiempo_acelerador = _arg1; } public static function set limitesMundo(_arg1:Rectangle):void{ _limitesMundo = _arg1; } public static function set nivelesCargados(_arg1:int):void{ _nivelesCargados = _arg1; } public static function get numero_cambio_bomba():int{ return (_numero_cambio_bomba); } public static function set aliens_muertos_1_tiro(_arg1:int):void{ _aliens_muertos_1_tiro = _arg1; } public static function set numero_bombas_fuera_nivel(_arg1:int):void{ _numero_bombas_fuera_nivel = _arg1; } public static function set satelite_movido(_arg1:int):void{ _satelite_movido = _arg1; } public static function set aliens_caidos_1_tiro(_arg1:int):void{ _aliens_caidos_1_tiro = _arg1; } public static function set retorno_almacen(_arg1:int):void{ _retorno_almacen = _arg1; } public static function set nivelActual(_arg1:String):void{ _nivelActual = _arg1; } public static function get tiempo_incio_nivel():Number{ return (_tiempo_incio_nivel); } public static function set leon_transportado(_arg1:Boolean):void{ _leon_transportado = _arg1; } public static function get editor():Editor{ return (_editor); } public static function get motor():Motor{ return (_motor); } public static function set tiempo_quieto(_arg1:int):void{ _tiempo_quieto = _arg1; } public static function get bombas_usadas():Array{ return (_bombas_usadas); } public static function get contenedorPadre():MovieClip{ return (_contenedorPadre); } public static function AbreWeb(_arg1:String){ navigateToURL(new URLRequest(_arg1)); } public static function get nivelesJuego():Niveles{ return (_nivelesJuego); } public static function set indiceNivelActual(_arg1:int):void{ _indiceNivelActual = _arg1; } public static function get numero_cajas_perdidas():int{ return (_numero_cajas_perdidas); } public static function get mostrarAyuda():Boolean{ return (_mostrarAyuda); } public static function set mundo(_arg1:b2World):void{ _mundo = _arg1; } public static function set cajas_hielo_destruidas(_arg1:int):void{ _cajas_hielo_destruidas = _arg1; } public static function get limitesMundo():Rectangle{ return (_limitesMundo); } public static function get leon_transportado():Boolean{ return (_leon_transportado); } public static function get retorno_almacen():int{ return (_retorno_almacen); } public static function get indiceNivelMaximo():int{ return (_indiceNivelMaximo); } public static function get aliens_muertos_1_tiro():int{ return (_aliens_muertos_1_tiro); } public static function get IndiceCaja():int{ return (indiceCaja); } public static function set nivelPruebaActual(_arg1:String):void{ _nivelPruebaActual = _arg1; } public static function set numero_cambio_bomba(_arg1:int):void{ _numero_cambio_bomba = _arg1; } public static function set tiempo_incio_nivel(_arg1:Number):void{ _tiempo_incio_nivel = _arg1; } public static function set logrosMan(_arg1:ManagerLogros):void{ _logrosMan = _arg1; } public static function get mundo():b2World{ return (_mundo); } public static function set editor(_arg1:Editor):void{ _editor = _arg1; } public static function get tiempo_quieto():int{ return (_tiempo_quieto); } public static function get cajas_hielo_destruidas():int{ return (_cajas_hielo_destruidas); } public static function set SoundMan(_arg1:SoundManager):void{ soundMan = _arg1; } public static function get nivelPruebaActual():String{ return (_nivelPruebaActual); } public static function set contenedorPadre(_arg1:MovieClip):void{ _contenedorPadre = _arg1; } public static function get logrosMan():ManagerLogros{ return (_logrosMan); } public static function set savegameMan(_arg1:ManagerPartidas):void{ _savegameMan = _arg1; } public static function set bombas_usadas(_arg1:Array):void{ _bombas_usadas = _arg1; } public static function get numero_rebotes_bomba():int{ return (_numero_rebotes_bomba); } } }//package
Section 297
//VCam_AS3_Interactive (VCam_AS3_Interactive) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class VCam_AS3_Interactive extends MovieClip { public var sH:Number; public var rp:Point; public var sW:Number; public var bounds_obj:Object; public var camH:Number; public var camW:Number; public var oldScaleMode:String; public function VCam_AS3_Interactive(){ addFrameScript(0, frame1); } public function set scaleX2(_arg1:Number):void{ setProperty2("scaleX", _arg1); } function frame1(){ mouseEnabled = false; visible = false; oldScaleMode = stage.scaleMode; stage.scaleMode = "exactFit"; sW = stage.stageWidth; sH = stage.stageHeight; stage.scaleMode = oldScaleMode; bounds_obj = this.getBounds(this); camH = bounds_obj.height; camW = bounds_obj.width; rp = new Point(x, y); addEventListener(Event.ENTER_FRAME, camControl); addEventListener(Event.REMOVED_FROM_STAGE, reset); camControl(); } public function set x2(_arg1:Number):void{ var _local2:Point; _local2 = parent.parent.globalToLocal(parent.localToGlobal(rp)); parent.x = (parent.x + (_arg1 - _local2.x)); } public function get rotation2():Number{ return (parent.rotation); } public function camControl(... _args):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; rp.x = x; rp.y = y; _local2 = (camH * scaleY); _local3 = (camW * scaleX); _local4 = (sH / _local2); _local5 = (sW / _local3); x2 = ((_local3 / 2) * _local5); y2 = ((_local2 / 2) * _local4); scaleX2 = _local5; scaleY2 = _local4; rotation2 = -(rotation); parent.filters = this.filters; parent.transform.colorTransform = this.transform.colorTransform; } public function set scaleY2(_arg1:Number):void{ setProperty2("scaleY", _arg1); } public function get scaleX2():Number{ return (parent.scaleX); } public function get x2():Number{ var _local1:Point; _local1 = parent.parent.globalToLocal(parent.localToGlobal(rp)); return (_local1.x); } public function setProperty2(_arg1:String, _arg2:Number):void{ var _local3:Point; var _local4:Point; _local3 = parent.parent.globalToLocal(parent.localToGlobal(rp)); parent[_arg1] = _arg2; _local4 = parent.parent.globalToLocal(parent.localToGlobal(rp)); parent.x = (parent.x - (_local4.x - _local3.x)); parent.y = (parent.y - (_local4.y - _local3.y)); } public function set y2(_arg1:Number):void{ var _local2:Point; _local2 = parent.parent.globalToLocal(parent.localToGlobal(rp)); parent.y = (parent.y + (_arg1 - _local2.y)); } public function reset(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, camControl); removeEventListener(Event.REMOVED_FROM_STAGE, reset); parent.scaleX = 1; parent.scaleY = 1; parent.x = 0; parent.y = 0; parent.rotation = 0; parent.visible = true; } public function get scaleY2():Number{ return (parent.scaleY); } public function get y2():Number{ var _local1:Point; _local1 = parent.parent.globalToLocal(parent.localToGlobal(rp)); return (_local1.y); } public function set rotation2(_arg1:Number):void{ setProperty2("rotation", _arg1); } } }//package
Section 298
//zebra_humo (zebra_humo) package { import flash.display.*; import flash.utils.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.filters.*; import flash.text.*; import flash.system.*; import flash.net.*; import flash.errors.*; import flash.ui.*; import flash.accessibility.*; public dynamic class zebra_humo extends MovieClip { public function zebra_humo(){ addFrameScript(0, frame1, 31, frame32); } function frame1(){ stop(); } function frame32(){ stop(); } } }//package
Section 299
//ZonaDescarga (ZonaDescarga) package { import flash.display.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class ZonaDescarga extends Actor { private var _descargaDisponible:Boolean; public function ZonaDescarga(_arg1:DisplayObjectContainer, _arg2:Point){ var _local3:Sprite; var _local4:Object; var _local5:b2BodyDef; var _local6:b2Body; _local3 = new ZonaDescargaMC(); _local4 = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((0 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[1]).Set((450 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[2]).Set((450 / VariablesGlobales.RATIO), (250 / VariablesGlobales.RATIO)); b2Vec2(_local4.vertices[3]).Set((0 / VariablesGlobales.RATIO), (250 / VariablesGlobales.RATIO)); _arg1.addChild(_local3); _local4.density = 0; _local4.isSensor = true; _local4.userData = this; _local5 = new b2BodyDef(); _local5.position.Set((_arg2.x / VariablesGlobales.RATIO), (_arg2.y / VariablesGlobales.RATIO)); _local5.isBullet = true; _local6 = VariablesGlobales.mundo.CreateBody(_local5); _local6.CreateShape(b2ShapeDef(_local4)); _local6.SetMassFromShapes(); _local4.isSensor = false; b2PolygonDef(_local4).SetAsOrientedBox((10 / VariablesGlobales.RATIO), (1000 / VariablesGlobales.RATIO), new b2Vec2((500 / VariablesGlobales.RATIO), (0 / VariablesGlobales.RATIO)), 0); _local6.CreateShape(b2ShapeDef(_local4)); super(_local6, _local3); } public function get descargaDisponible():Boolean{ return (_descargaDisponible); } public function set descargaDisponible(_arg1:Boolean):void{ _descargaDisponible = _arg1; } public function comprobarDescargaDisponible(_arg1:Number):Boolean{ var _local2:Number; var _local3:Number; _local2 = _arg1; _local3 = (cuerpo.GetPosition().x + (350 / VariablesGlobales.RATIO)); if ((((_arg1 >= _local3)) && ((descargaDisponible == false)))){ descargaDisponible = true; VariablesGlobales.motor.llegadaAlmacenDestino(); }; return (descargaDisponible); } override protected function actualizacionEspecificaHijo():void{ super.actualizacionEspecificaHijo(); } } }//package
Section 300
//ZonaDescargaMC (ZonaDescargaMC) package { import flash.display.*; public dynamic class ZonaDescargaMC extends MovieClip { } }//package
Section 301
//ZonaFinBala (ZonaFinBala) package { import flash.display.*; public dynamic class ZonaFinBala extends MovieClip { } }//package
Section 302
//ZooTransport (ZooTransport) package { import flash.display.*; import flash.utils.*; import flash.events.*; import com.tanoku.sonido.*; import flash.text.*; import nl.demonsters.debugger.*; import General.*; public class ZooTransport extends MovieClip { private var _pantalla:Sprite; var _mochiads_game_id:String;// = "8c33520980f0c55b" public var intro:MovieClip; private var _cadena_cheat:String;// = "" private var _editor:Editor; public var txt_denegado:TextField; public function ZooTransport(){ _cadena_cheat = ""; _mochiads_game_id = "8c33520980f0c55b"; super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); } public function Validar(){ var _local1:String; var _local2:Array; var _local3:String; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Boolean; var _local9:int; trace("validar"); _local1 = ""; _local2 = new Array(""); _local3 = stage.loaderInfo.url; _local4 = (_local3.indexOf("://") + 3); _local5 = _local3.indexOf("/", _local4); _local1 = _local3.substring(_local4, _local5); _local6 = (_local1.lastIndexOf(".") - 1); _local7 = (_local1.lastIndexOf(".", _local6) + 1); _local1 = _local1.substring(_local7, _local1.length); _local8 = false; _local9 = 0; while (_local9 < _local2.length) { if (_local1 == _local2[_local9]){ _local8 = true; _local9 = _local2.length; }; _local9++; }; _local8 = true; if (_local8){ mc_preload = new preloader_sc(); this.addChild(mc_preload); mc_preload.jugar.visible = false; addEventListener(Event.ENTER_FRAME, preloader); addEventListener(Event.ENTER_FRAME, enterFrameCheat); input = new Input(Sprite(this)); mc_preload.boton_sponsor.addEventListener(MouseEvent.CLICK, sponsorPreload); mc_preload.boton_tanoku.addEventListener(MouseEvent.CLICK, tanokuPreload); mc_preload.boton_twitter.addEventListener(MouseEvent.CLICK, twitterPreload); trace("allowed"); this.play(); } else { trace("denied"); txt_denegado.text = (("access denied \n -" + _local1) + "-"); }; } private function twitterPreload(_arg1:MouseEvent):void{ VariablesGlobales.AbreWeb(VariablesGlobales.WEB_TWITER); } function tanokuPreload(_arg1:MouseEvent):void{ VariablesGlobales.AbreWeb(VariablesGlobales.WEB_TANOKU); } public function Cargar_Sonidos():void{ VariablesGlobales.MusicMan.addLibrarySound(principal1, "principal1"); VariablesGlobales.MusicMan.addLibrarySound(ingame1, "ingame1"); VariablesGlobales.SoundMan.addLibrarySound(click, "click"); VariablesGlobales.SoundMan.addLibrarySound(motor, "motor"); VariablesGlobales.SoundMan.addLibrarySound(claxon, "claxon"); VariablesGlobales.SoundMan.addLibrarySound(humo, "humo"); VariablesGlobales.SoundMan.addLibrarySound(estrellas, "estrellas"); VariablesGlobales.SoundMan.addLibrarySound(cuervos, "cuervos"); VariablesGlobales.SoundMan.addLibrarySound(logro, "logro"); } function frame3(){ stop(); } function frame1(){ stop(); Validar(); } private function enterFrameCheat(_arg1:Event):void{ } function preloader(_arg1:Event):void{ var _local2:*; var _local3:*; var _local4:int; _local2 = stage.loaderInfo.bytesTotal; _local3 = stage.loaderInfo.bytesLoaded; _local4 = ((_local3 * 100) / _local2); trace((_local4 + "%")); mc_preload.porc.text = (_local4 + "%"); mc_preload.gotoAndStop(_local4); if (_local3 >= _local2){ timerCpmStar = new Timer(100, 1); timerCpmStar.start(); timerCpmStar.addEventListener(TimerEvent.TIMER_COMPLETE, finTiempoTimerCPM); mc_preload.porc.visible = false; removeEventListener(Event.ENTER_FRAME, preloader); trace(("loaded " + getTimer())); }; } function frame5(){ stop(); Start(); } function frame4(){ stop(); Intros(); } public function Preloader(){ trace(("preloading " + getTimer())); } function frame2(){ stop(); Preloader(); } public function cierra_pantalla(_arg1){ _cadena_cheat = ""; if (_arg1){ removeChild(_arg1); _arg1 = null; }; } function sponsorPreload(_arg1:MouseEvent):void{ VariablesGlobales.AbreWeb(VariablesGlobales.WEB_SPONSOR); } public function abre_pantalla(_arg1){ _cadena_cheat = ""; addChild(_arg1); _arg1.main_class = this; } private function Cargar_Datos():void{ VariablesGlobales.SoundMan = SoundManager.getInstance(); VariablesGlobales.MusicMan = MusicManager.getInstance(); VariablesGlobales.logrosMan = new ManagerLogros(); VariablesGlobales.logrosMan.main_class = this; VariablesGlobales.savegameMan = new ManagerPartidas(); VariablesGlobales.contenedorPadre = this; } public function Start(){ var _local1:MonsterDebugger; trace("start"); stage.quality = "low"; abre_pantalla(new Principal()); _local1 = new MonsterDebugger(this); } function jugarPreload(_arg1:MouseEvent):void{ this.removeChild(mc_preload); mc_preload.jugar.removeEventListener(MouseEvent.CLICK, jugarPreload); mc_preload.boton_sponsor.removeEventListener(MouseEvent.CLICK, sponsorPreload); mc_preload.boton_tanoku.removeEventListener(MouseEvent.CLICK, tanokuPreload); mc_preload.boton_twitter.removeEventListener(MouseEvent.CLICK, twitterPreload); this.play(); } function finTiempoTimerCPM(_arg1:TimerEvent):void{ trace("fin timer"); mc_preload.jugar.visible = true; mc_preload.jugar.addEventListener(MouseEvent.CLICK, jugarPreload); timerCpmStar.removeEventListener(TimerEvent.TIMER_COMPLETE, finTiempoTimerCPM); } public function Intros(){ trace("Intros"); Cargar_Datos(); Cargar_Sonidos(); } function PL_LOADING(_arg1:ProgressEvent):void{ var _local2:Number; _local2 = ((_arg1.bytesLoaded / _arg1.bytesTotal) * 100); trace((_local2 + "%")); if (_local2 == 100){ }; } } }//package
Section 303
//ZooTransportContactListener (ZooTransportContactListener) package { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; public class ZooTransportContactListener extends b2ContactListener { override public function Persist(_arg1:b2ContactPoint):void{ if ((((_arg1.shape1.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape2.GetBody().GetUserData() is TerrenoBarro)))){ if (CamionActor(_arg1.shape1.GetBody().GetUserData()).cuerpo.m_linearVelocity.Length() > 1){ CamionActor(_arg1.shape1.GetBody().GetUserData()).enBarro = true; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape1.GetBody().GetUserData() is TerrenoBarro)))){ if (CamionActor(_arg1.shape2.GetBody().GetUserData()).cuerpo.m_linearVelocity.Length() > 1){ CamionActor(_arg1.shape2.GetBody().GetUserData()).enBarro = true; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaLeon)) && ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaLeon)){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaComida)){ } else { JaulaLeon(_arg1.shape1.GetBody().GetUserData()).en_contacto = true; }; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaLeon)) && ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaLeon)){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaComida)){ } else { JaulaLeon(_arg1.shape2.GetBody().GetUserData()).en_contacto = true; }; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape2.GetBody().GetUserData() is ZonaDescarga)))){ ZonaDescarga(_arg1.shape2.GetBody().GetUserData()).comprobarDescargaDisponible(CamionActor(_arg1.shape1.GetBody().GetUserData()).cuerpo.GetPosition().x); } else { if ((((_arg1.shape2.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape1.GetBody().GetUserData() is ZonaDescarga)))){ ZonaDescarga(_arg1.shape1.GetBody().GetUserData()).comprobarDescargaDisponible(CamionActor(_arg1.shape2.GetBody().GetUserData()).cuerpo.GetPosition().x); }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is ZonaDescarga)))){ if (ZonaDescarga(_arg1.shape2.GetBody().GetUserData()).descargaDisponible){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).Descargar(); if ((_arg1.shape1.GetBody().GetUserData() is JaulaLeon)){ VariablesGlobales.leon_transportado = true; }; }; }; if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is ZonaDescarga)))){ if (ZonaDescarga(_arg1.shape1.GetBody().GetUserData()).descargaDisponible){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).Descargar(); if ((_arg1.shape2.GetBody().GetUserData() is JaulaLeon)){ VariablesGlobales.leon_transportado = true; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is EntradaCueva)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).dentro_cueva = true; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is EntradaCueva)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).dentro_cueva = true; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is SalidaCueva)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).dentro_cueva = false; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is SalidaCueva)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).dentro_cueva = false; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is InfluenciaAgua)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).agua_cerca = true; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is InfluenciaAgua)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).agua_cerca = true; }; }; }; super.Persist(_arg1); } override public function Add(_arg1:b2ContactPoint):void{ if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is TerrenoRuta)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).Devolver(); }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is TerrenoRuta)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).Devolver(); }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is TerrenoAceite)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).Devolver(); }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is TerrenoAceite)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).Devolver(); }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is Agua)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).Devolver(); if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.WATER_CRATE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.WATER_CRATE, VariablesGlobales.contenedorPadre); }; if ((_arg1.shape1.GetBody().GetUserData() is JaulaDelfin)){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.FREE_DOLPHIN)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.FREE_DOLPHIN, VariablesGlobales.contenedorPadre); }; }; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is Agua)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).Devolver(); if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.WATER_CRATE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.WATER_CRATE, VariablesGlobales.contenedorPadre); }; if ((_arg1.shape2.GetBody().GetUserData() is JaulaDelfin)){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.FREE_DOLPHIN)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.FREE_DOLPHIN, VariablesGlobales.contenedorPadre); }; }; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is TerrenoBarro)))){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.SWAMP_CREATURE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.SWAMP_CREATURE, VariablesGlobales.contenedorPadre); }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is TerrenoBarro)))){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.SWAMP_CREATURE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.SWAMP_CREATURE, VariablesGlobales.contenedorPadre); }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape2.GetBody().GetUserData() is TerrenoBarro)))){ if ((_arg1.shape1.GetBody().GetUserData() is CamionActor)){ if (CamionActor(_arg1.shape1.GetBody().GetUserData()).cuerpo.GetLinearVelocity().x > 4){ CamionActor(_arg1.shape1.GetBody().GetUserData()).cuerpo.SetLinearVelocity(new b2Vec2(4, CamionActor(_arg1.shape1.GetBody().GetUserData()).cuerpo.GetLinearVelocity().y)); }; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape1.GetBody().GetUserData() is TerrenoBarro)))){ if ((_arg1.shape2.GetBody().GetUserData() is CamionActor)){ if (CamionActor(_arg1.shape2.GetBody().GetUserData()).cuerpo.GetLinearVelocity().x > 4){ CamionActor(_arg1.shape2.GetBody().GetUserData()).cuerpo.SetLinearVelocity(new b2Vec2(4, CamionActor(_arg1.shape2.GetBody().GetUserData()).cuerpo.GetLinearVelocity().y)); }; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is PlataformaDinamicaHorizontal)) && ((_arg1.shape2.GetBody().GetUserData() is TerrenoRuta)))){ trace("colision lateral"); if ((_arg1.shape1.GetBody().GetUserData() is PlataformaDinamicaHorizontal)){ PlataformaDinamicaHorizontal(_arg1.shape1.GetBody().GetUserData()).colision_lateral(); }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is PlataformaDinamicaHorizontal)) && ((_arg1.shape1.GetBody().GetUserData() is TerrenoRuta)))){ trace("colision lateral"); if ((_arg1.shape2.GetBody().GetUserData() is PlataformaDinamicaHorizontal)){ PlataformaDinamicaHorizontal(_arg1.shape2.GetBody().GetUserData()).colision_lateral(); }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is PuenteCuerdas)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).Devolver(); if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.NAKASONE_BRIDGE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.NAKASONE_BRIDGE, VariablesGlobales.contenedorPadre); }; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is PuenteCuerdas)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).Devolver(); if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.NAKASONE_BRIDGE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.NAKASONE_BRIDGE, VariablesGlobales.contenedorPadre); }; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is Proyectil)) || ((_arg1.shape2.GetBody().GetUserData() is Proyectil)))){ if ((_arg1.shape1.GetBody().GetUserData() is Proyectil)){ Proyectil(_arg1.shape1.GetBody().GetUserData()).impacto(); if ((_arg1.shape2.GetBody().GetUserData() is JaulaAguila)){ if (JaulaAguila(_arg1.shape2.GetBody().GetUserData())._volando == true){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.HUNTING_LODGE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.HUNTING_LODGE, VariablesGlobales.contenedorPadre); }; }; }; } else { if ((_arg1.shape2.GetBody().GetUserData() is Proyectil)){ Proyectil(_arg1.shape2.GetBody().GetUserData()).impacto(); if ((_arg1.shape1.GetBody().GetUserData() is JaulaAguila)){ if (JaulaAguila(_arg1.shape1.GetBody().GetUserData())._volando == true){ if (!VariablesGlobales.logrosMan.LogroDesbloqueado(ManagerLogros.HUNTING_LODGE)){ VariablesGlobales.logrosMan.DesbloquearLogro(ManagerLogros.HUNTING_LODGE, VariablesGlobales.contenedorPadre); }; }; }; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is Proyectil)) && ((_arg1.shape2.GetBody().GetUserData() is FinBala)))){ if ((_arg1.shape1.GetBody().GetUserData() is Proyectil)){ Proyectil(_arg1.shape1.GetBody().GetUserData()).llegaFina(); }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is Proyectil)) && ((_arg1.shape1.GetBody().GetUserData() is FinBala)))){ if ((_arg1.shape2.GetBody().GetUserData() is Proyectil)){ Proyectil(_arg1.shape2.GetBody().GetUserData()).llegaFina(); }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is JaulaComida)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData())._comida_cerca = true; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is JaulaComida)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData())._comida_cerca = true; }; }; }; super.Add(_arg1); } override public function Remove(_arg1:b2ContactPoint):void{ if ((((_arg1.shape1.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape2.GetBody().GetUserData() is TerrenoBarro)))){ if ((_arg1.shape1.GetBody().GetUserData() is CamionActor)){ CamionActor(_arg1.shape1.GetBody().GetUserData()).enBarro = false; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is CamionActor)) && ((_arg1.shape1.GetBody().GetUserData() is TerrenoBarro)))){ if ((_arg1.shape2.GetBody().GetUserData() is CamionActor)){ CamionActor(_arg1.shape1.GetBody().GetUserData()).enBarro = false; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaLeon)) && ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaLeon)){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaComida)){ } else { JaulaLeon(_arg1.shape1.GetBody().GetUserData()).en_contacto = false; }; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaLeon)) && ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaLeon)){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaComida)){ } else { JaulaLeon(_arg1.shape2.GetBody().GetUserData()).en_contacto = false; }; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is InfluenciaAgua)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData()).agua_cerca = false; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is InfluenciaAgua)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData()).agua_cerca = false; }; }; }; if ((((_arg1.shape1.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape2.GetBody().GetUserData() is JaulaComida)))){ if ((_arg1.shape1.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape1.GetBody().GetUserData())._comida_cerca = false; }; } else { if ((((_arg1.shape2.GetBody().GetUserData() is JaulaActor)) && ((_arg1.shape1.GetBody().GetUserData() is JaulaComida)))){ if ((_arg1.shape2.GetBody().GetUserData() is JaulaActor)){ JaulaActor(_arg1.shape2.GetBody().GetUserData())._comida_cerca = false; }; }; }; super.Remove(_arg1); } } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClip {VCam_AS3_Interactive}Uses:1
Symbol 3 BitmapUsed by:4 322
Symbol 4 GraphicUses:3Used by:27 343
Symbol 5 BitmapUsed by:6
Symbol 6 GraphicUses:5Used by:10 1444 1554
Symbol 7 BitmapUsed by:8
Symbol 8 GraphicUses:7Used by:9
Symbol 9 MovieClip {Rueda}Uses:8Used by:10 571 1443
Symbol 10 MovieClipUses:6 9Used by:27
Symbol 11 BitmapUsed by:12 693
Symbol 12 GraphicUses:11Used by:27
Symbol 13 BitmapUsed by:14 942 943 1242 1243 1245 1246 1248 1249 1257 1258 1260 1261
Symbol 14 GraphicUses:13Used by:15
Symbol 15 ButtonUses:14Used by:27
Symbol 16 FontUsed by:17
Symbol 17 EditableTextUses:16Used by:27
Symbol 18 BitmapUsed by:19
Symbol 19 GraphicUses:18Used by:20
Symbol 20 ButtonUses:19Used by:27 1263
Symbol 21 BitmapUsed by:22
Symbol 22 GraphicUses:21Used by:23 1554
Symbol 23 ButtonUses:22Used by:27 1263
Symbol 24 BitmapUsed by:25
Symbol 25 GraphicUses:24Used by:26
Symbol 26 ButtonUses:25Used by:27 1263
Symbol 27 MovieClip {preloader_sc}Uses:4 10 12 15 17 20 23 26
Symbol 28 BitmapUsed by:29
Symbol 29 GraphicUses:28Used by:130
Symbol 30 BitmapUsed by:31
Symbol 31 GraphicUses:30Used by:130
Symbol 32 BitmapUsed by:33
Symbol 33 GraphicUses:32Used by:36
Symbol 34 BitmapUsed by:35
Symbol 35 GraphicUses:34Used by:36
Symbol 36 MovieClipUses:33 35Used by:130 1554
Symbol 37 GraphicUsed by:48
Symbol 38 GraphicUsed by:48
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:48 69 76 83 90 100 108 121 129 1554
Symbol 41 GraphicUsed by:48 83 90 100 129
Symbol 42 GraphicUsed by:48 69 76 83 90 100 108 121 129
Symbol 43 GraphicUsed by:48 69 76 83 90 100 108 121 129
Symbol 44 GraphicUsed by:48
Symbol 45 GraphicUsed by:48
Symbol 46 GraphicUsed by:48
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:37 38 40 41 42 43 44 45 46 47Used by:130
Symbol 49 BitmapUsed by:51
Symbol 50 BitmapUsed by:51 1024 1035 1039 1043 1047 1051 1055 1059
Symbol 51 GraphicUses:49 50Used by:130
Symbol 52 BitmapUsed by:53 70 77 84 91 1024 1035 1039 1043 1047 1051 1055 1059
Symbol 53 GraphicUses:52Used by:130
Symbol 54 BitmapUsed by:55 1492
Symbol 55 GraphicUses:54Used by:58 976
Symbol 56 BitmapUsed by:57 1492
Symbol 57 GraphicUses:56Used by:58 976
Symbol 58 ButtonUses:55 57Used by:130 1021 1074 1080
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:130
Symbol 61 BitmapUsed by:62
Symbol 62 GraphicUses:61Used by:63
Symbol 63 MovieClipUses:62Used by:130 1554
Symbol 64 GraphicUsed by:69
Symbol 65 GraphicUsed by:69
Symbol 66 GraphicUsed by:69
Symbol 67 GraphicUsed by:69
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:64 65 40 66 42 67 43 68Used by:130
Symbol 70 GraphicUses:52Used by:130
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:71Used by:130
Symbol 73 GraphicUsed by:76
Symbol 74 GraphicUsed by:76
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:73 74 40 42 43 75Used by:130
Symbol 77 GraphicUses:52Used by:130
Symbol 78 BitmapUsed by:79
Symbol 79 GraphicUses:78Used by:130
Symbol 80 GraphicUsed by:83
Symbol 81 GraphicUsed by:83
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:80 42 41 40 43 81 82Used by:130
Symbol 84 GraphicUses:52Used by:130
Symbol 85 BitmapUsed by:86
Symbol 86 GraphicUses:85Used by:130
Symbol 87 GraphicUsed by:90
Symbol 88 GraphicUsed by:90
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:87 41 40 42 43 88 89Used by:130
Symbol 91 GraphicUses:52Used by:130
Symbol 92 BitmapUsed by:93
Symbol 93 GraphicUses:92Used by:130
Symbol 94 GraphicUsed by:100
Symbol 95 GraphicUsed by:100
Symbol 96 GraphicUsed by:100
Symbol 97 GraphicUsed by:100
Symbol 98 GraphicUsed by:100
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:94 95 42 41 40 43 96 97 98 99Used by:130
Symbol 101 BitmapUsed by:102
Symbol 102 GraphicUses:101Used by:130
Symbol 103 GraphicUsed by:108
Symbol 104 GraphicUsed by:108 129 1573
Symbol 105 GraphicUsed by:108
Symbol 106 GraphicUsed by:108
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClipUses:103 104 42 105 40 43 106 107Used by:130
Symbol 109 BitmapUsed by:110
Symbol 110 GraphicUses:109Used by:130
Symbol 111 GraphicUsed by:121
Symbol 112 GraphicUsed by:121
Symbol 113 GraphicUsed by:121
Symbol 114 GraphicUsed by:121
Symbol 115 GraphicUsed by:121
Symbol 116 GraphicUsed by:121
Symbol 117 GraphicUsed by:121
Symbol 118 GraphicUsed by:121
Symbol 119 GraphicUsed by:121
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClipUses:111 42 112 40 43 113 114 115 116 117 118 119 120Used by:130
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:130
Symbol 124 GraphicUsed by:129
Symbol 125 GraphicUsed by:129
Symbol 126 GraphicUsed by:129
Symbol 127 GraphicUsed by:129
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:124 125 42 41 40 43 126 104 127 128Used by:130
Symbol 130 MovieClip {dialogosEnJuego}Uses:29 31 36 48 51 53 58 60 63 69 70 72 76 77 79 83 84 86 90 91 93 100 102 108 110 121 123 129Used by:1554
Symbol 131 FontUsed by:132
Symbol 132 EditableTextUses:131Used by:Timeline
Symbol 133 GraphicUsed by:1441 1480 1554
Symbol 134 BitmapUsed by:135 136 138 139 141 142 233 234 236 238 240 241 242 244 1096 1097 1099 1100 1102 1103 1107 1110 1111 1113 1114 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
Symbol 135 GraphicUses:134Used by:137
Symbol 136 GraphicUses:134Used by:137
Symbol 137 ButtonUses:135 136Used by:1205 1210 1554
Symbol 138 GraphicUses:134Used by:140
Symbol 139 GraphicUses:134Used by:140
Symbol 140 ButtonUses:138 139Used by:975 1205 1210 1554
Symbol 141 GraphicUses:134Used by:143
Symbol 142 GraphicUses:134Used by:143
Symbol 143 ButtonUses:141 142Used by:1205 1554
Symbol 144 GraphicUsed by:145
Symbol 145 ButtonUses:144Used by:1554
Symbol 146 BitmapUsed by:147 148 989
Symbol 147 GraphicUses:146Used by:149 150 1067
Symbol 148 GraphicUses:146Used by:149 150 1067
Symbol 149 ButtonUses:147 148Used by:1070 1554
Symbol 150 MovieClipUses:147 148Used by:1070 1554
Symbol 151 BitmapUsed by:153 154 156 157 163 164 182 183 187 188 982
Symbol 152 BitmapUsed by:153 154 156 157 163 164 174 175 177 178 182 183 187 188 190 191 983 985 996 997 1004 1005 1007 1008 1012
Symbol 153 GraphicUses:151 152Used by:155
Symbol 154 GraphicUses:151 152Used by:155
Symbol 155 ButtonUses:153 154Used by:1070 1554
Symbol 156 GraphicUses:151 152Used by:158
Symbol 157 GraphicUses:151 152Used by:158
Symbol 158 ButtonUses:156 157Used by:1070 1554
Symbol 159 GraphicUsed by:162 186 194 209 211
Symbol 160 FontUsed by:161 185 193 208 210 1020 1073 1077
Symbol 161 TextUses:160Used by:162
Symbol 162 ButtonUses:159 161Used by:1554
Symbol 163 GraphicUses:151 152Used by:165
Symbol 164 GraphicUses:151 152Used by:165
Symbol 165 ButtonUses:163 164Used by:1070 1554
Symbol 166 BitmapUsed by:167 168 1010
Symbol 167 GraphicUses:166Used by:169 170 1068
Symbol 168 GraphicUses:166Used by:169 170 1068
Symbol 169 ButtonUses:167 168Used by:1070 1554
Symbol 170 MovieClipUses:167 168Used by:1070 1554
Symbol 171 GraphicUsed by:172
Symbol 172 ButtonUses:171Used by:1078 1554
Symbol 173 BitmapUsed by:174 175 177 178 190 191 982
Symbol 174 GraphicUses:173 152Used by:176
Symbol 175 GraphicUses:173 152Used by:176
Symbol 176 ButtonUses:174 175Used by:1082 1554
Symbol 177 GraphicUses:173 152Used by:179
Symbol 178 GraphicUses:173 152Used by:179
Symbol 179 ButtonUses:177 178Used by:1084 1554
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:1070 1554
Symbol 182 GraphicUses:151 152Used by:184
Symbol 183 GraphicUses:151 152Used by:184
Symbol 184 ButtonUses:182 183Used by:1070 1554
Symbol 185 TextUses:160Used by:186
Symbol 186 ButtonUses:159 185Used by:1554
Symbol 187 GraphicUses:151 152Used by:189
Symbol 188 GraphicUses:151 152Used by:189
Symbol 189 ButtonUses:187 188Used by:1070 1554
Symbol 190 GraphicUses:173 152Used by:192
Symbol 191 GraphicUses:173 152Used by:192
Symbol 192 ButtonUses:190 191Used by:1082 1554
Symbol 193 TextUses:160Used by:194
Symbol 194 ButtonUses:159 193Used by:1554
Symbol 195 BitmapUsed by:196 197 200 201 204 205 1018
Symbol 196 GraphicUses:195Used by:198 199
Symbol 197 GraphicUses:195Used by:198 199
Symbol 198 ButtonUses:196 197Used by:1554
Symbol 199 MovieClipUses:196 197Used by:1070 1554
Symbol 200 GraphicUses:195Used by:202 203
Symbol 201 GraphicUses:195Used by:202 203
Symbol 202 ButtonUses:200 201Used by:1554
Symbol 203 MovieClipUses:200 201Used by:1070 1554
Symbol 204 GraphicUses:195Used by:206 207
Symbol 205 GraphicUses:195Used by:206 207
Symbol 206 ButtonUses:204 205Used by:1554
Symbol 207 MovieClipUses:204 205Used by:1070 1554
Symbol 208 TextUses:160Used by:209
Symbol 209 ButtonUses:159 208Used by:1554
Symbol 210 TextUses:160Used by:211
Symbol 211 ButtonUses:159 210Used by:1554
Symbol 212 BitmapUsed by:213
Symbol 213 GraphicUses:212Used by:232 1117 1118
Symbol 214 BitmapUsed by:215
Symbol 215 GraphicUses:214Used by:232
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:232
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:232
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:232
Symbol 222 BitmapUsed by:223
Symbol 223 GraphicUses:222Used by:232
Symbol 224 BitmapUsed by:225
Symbol 225 GraphicUses:224Used by:232
Symbol 226 BitmapUsed by:227
Symbol 227 GraphicUses:226Used by:232
Symbol 228 BitmapUsed by:229
Symbol 229 GraphicUses:228Used by:232
Symbol 230 BitmapUsed by:231
Symbol 231 GraphicUses:230Used by:232
Symbol 232 MovieClipUses:213 215 217 219 221 223 225 227 229 231Used by:239 243 1117 1118 1554
Symbol 233 GraphicUses:134Used by:239 1117
Symbol 234 GraphicUses:134Used by:239 1117
Symbol 235 GraphicUsed by:237
Symbol 236 GraphicUses:134Used by:237
Symbol 237 MovieClipUses:235 236Used by:239 243 1117 1118
Symbol 238 GraphicUses:134Used by:239 1117
Symbol 239 MovieClipUses:233 234 237 238 232Used by:1554
Symbol 240 GraphicUses:134Used by:243 1118
Symbol 241 GraphicUses:134Used by:243 1118
Symbol 242 GraphicUses:134Used by:243 1118
Symbol 243 MovieClipUses:240 241 237 242 232Used by:1554
Symbol 244 GraphicUses:134Used by:245
Symbol 245 MovieClipUses:244Used by:1554
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClipUses:246Used by:1023 1063 1554
Symbol 248 MovieClip {fl.core.ComponentShim}Used by:265 312 1023 1063 1554
Symbol 249 GraphicUsed by:250
Symbol 250 MovieClip {CellRenderer_upSkin}Uses:249Used by:265
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClip {CellRenderer_disabledSkin}Uses:251Used by:265
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClip {CellRenderer_downSkin}Uses:253Used by:265
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClip {CellRenderer_overSkin}Uses:255Used by:265
Symbol 257 GraphicUsed by:258
Symbol 258 MovieClip {CellRenderer_selectedDisabledSkin}Uses:257Used by:265
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClip {CellRenderer_selectedDownSkin}Uses:259Used by:265
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClip {CellRenderer_selectedOverSkin}Uses:261Used by:265
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClip {CellRenderer_selectedUpSkin}Uses:263Used by:265
Symbol 265 MovieClip {fl.controls.listClasses.CellRenderer}Uses:250 248 252 254 256 258 260 262 264Used by:1023 1554
Symbol 266 GraphicUsed by:268
Symbol 267 GraphicUsed by:268 270 272 274 276 278 280 282 288 291 295 305
Symbol 268 MovieClip {NumericStepperDownArrow_disabledSkin}Uses:266 267Used by:1063 1554
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClip {NumericStepperDownArrow_downSkin}Uses:269 267Used by:1063 1554
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClip {NumericStepperDownArrow_overSkin}Uses:271 267Used by:1063 1554
Symbol 273 GraphicUsed by:274
Symbol 274 MovieClip {NumericStepperDownArrow_upSkin}Uses:273 267Used by:1063 1554
Symbol 275 GraphicUsed by:276
Symbol 276 MovieClip {NumericStepperUpArrow_disabledSkin}Uses:275 267Used by:1063 1554
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClip {NumericStepperUpArrow_downSkin}Uses:277 267Used by:1063 1554
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClip {NumericStepperUpArrow_overSkin}Uses:279 267Used by:1063 1554
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClip {NumericStepperUpArrow_upSkin}Uses:281 267Used by:1063 1554
Symbol 283 GraphicUsed by:284
Symbol 284 MovieClip {ScrollTrack_skin}Uses:283Used by:312
Symbol 285 GraphicUsed by:286
Symbol 286 MovieClip {focusRectSkin}Uses:285Used by:312 1023 1063
Symbol 287 GraphicUsed by:289
Symbol 288 MovieClipUses:267Used by:289 299 301
Symbol 289 MovieClip {ScrollArrowUp_downSkin}Uses:287 288Used by:312
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClip {ScrollArrowDown_downSkin}Uses:290 267Used by:312
Symbol 292 GraphicUsed by:293
Symbol 293 MovieClip {ScrollThumb_downSkin}Uses:292Used by:312
Symbol 294 GraphicUsed by:295
Symbol 295 MovieClip {ScrollArrowDown_overSkin}Uses:294 267Used by:312
Symbol 296 GraphicUsed by:297
Symbol 297 MovieClip {ScrollThumb_overSkin}Uses:296Used by:312
Symbol 298 GraphicUsed by:299
Symbol 299 MovieClip {ScrollArrowUp_overSkin}Uses:298 288Used by:312
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClip {ScrollArrowUp_upSkin}Uses:300 288Used by:312
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClip {ScrollThumb_upSkin}Uses:302Used by:312
Symbol 304 GraphicUsed by:305
Symbol 305 MovieClip {ScrollArrowDown_upSkin}Uses:304 267Used by:312
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClip {ScrollArrowDown_disabledSkin}Uses:306Used by:312
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClip {ScrollArrowUp_disabledSkin}Uses:308Used by:312
Symbol 310 GraphicUsed by:311
Symbol 311 MovieClip {ScrollBar_thumbIcon}Uses:310Used by:312
Symbol 312 MovieClip {fl.controls.ScrollBar}Uses:284 248 286 289 291 293 295 297 299 301 303 305 307 309 311Used by:1023 1554
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClip {TextInput_disabledSkin}Uses:313Used by:1554
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClip {TextInput_upSkin}Uses:315Used by:1554
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClip {TileList_skin}Uses:317Used by:1023 1554
Symbol 319 BitmapUsed by:322 341
Symbol 320 BitmapUsed by:322 339
Symbol 321 BitmapUsed by:322 323
Symbol 322 GraphicUses:3 319 320 321Used by:1554
Symbol 323 GraphicUses:321Used by:338
Symbol 324 BitmapUsed by:325
Symbol 325 GraphicUses:324Used by:326
Symbol 326 MovieClipUses:325Used by:327
Symbol 327 MovieClipUses:326Used by:337 342
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:330
Symbol 330 MovieClipUses:329Used by:331 332
Symbol 331 MovieClipUses:330Used by:337 343
Symbol 332 MovieClipUses:330Used by:337 342
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:333Used by:335
Symbol 335 MovieClipUses:334Used by:336
Symbol 336 MovieClipUses:335Used by:337
Symbol 337 MovieClipUses:327 331 332 336Used by:338 340
Symbol 338 MovieClipUses:323 337Used by:344 1263
Symbol 339 GraphicUses:320Used by:340
Symbol 340 MovieClipUses:339 337Used by:344
Symbol 341 GraphicUses:319Used by:342
Symbol 342 MovieClipUses:341 327 332Used by:344
Symbol 343 MovieClipUses:4 331Used by:344
Symbol 344 MovieClip {catalogoFondos}Uses:338 340 342 343Used by:1554
Symbol 345 BitmapUsed by:346 347 348 349 350 365 366 367 382 391 392 393 402 403 404 413 414 415 424 425 426 441 442 443 446 447 448
Symbol 346 GraphicUses:345Used by:1554
Symbol 347 GraphicUses:345Used by:351
Symbol 348 GraphicUses:345Used by:351
Symbol 349 GraphicUses:345Used by:351
Symbol 350 GraphicUses:345Used by:351
Symbol 351 MovieClip {Delfin}Uses:347 348 349 350Used by:912 1554
Symbol 352 BitmapUsed by:353 395
Symbol 353 GraphicUses:352Used by:364
Symbol 354 BitmapUsed by:355 396
Symbol 355 GraphicUses:354Used by:364
Symbol 356 BitmapUsed by:357 397
Symbol 357 GraphicUses:356Used by:364
Symbol 358 BitmapUsed by:359 398
Symbol 359 GraphicUses:358Used by:364
Symbol 360 BitmapUsed by:361 399
Symbol 361 GraphicUses:360Used by:364
Symbol 362 BitmapUsed by:363 400
Symbol 363 GraphicUses:362Used by:364
Symbol 364 MovieClip {dolphin_humo}Uses:353 355 357 359 361 363Used by:1554
Symbol 365 GraphicUses:345Used by:368
Symbol 366 GraphicUses:345Used by:368
Symbol 367 GraphicUses:345Used by:368
Symbol 368 MovieClip {Elefante}Uses:365 366 367Used by:912 1554
Symbol 369 BitmapUsed by:370 384 406 417
Symbol 370 GraphicUses:369Used by:381
Symbol 371 BitmapUsed by:372 385 407 418
Symbol 372 GraphicUses:371Used by:381
Symbol 373 BitmapUsed by:374 386 408 419
Symbol 374 GraphicUses:373Used by:381
Symbol 375 BitmapUsed by:376 387 409 420
Symbol 376 GraphicUses:375Used by:381
Symbol 377 BitmapUsed by:378 388 410 421
Symbol 378 GraphicUses:377Used by:381
Symbol 379 BitmapUsed by:380 389 411 422
Symbol 380 GraphicUses:379Used by:381
Symbol 381 MovieClip {elephant_humo}Uses:370 372 374 376 378 380Used by:1554
Symbol 382 GraphicUses:345Used by:383
Symbol 383 MovieClip {Comida}Uses:382Used by:912 1554
Symbol 384 GraphicUses:369Used by:390 445
Symbol 385 GraphicUses:371Used by:390 445
Symbol 386 GraphicUses:373Used by:390 445
Symbol 387 GraphicUses:375Used by:390 445
Symbol 388 GraphicUses:377Used by:390 445
Symbol 389 GraphicUses:379Used by:390 445
Symbol 390 MovieClip {food_humo}Uses:384 385 386 387 388 389Used by:1554
Symbol 391 GraphicUses:345Used by:394
Symbol 392 GraphicUses:345Used by:394
Symbol 393 GraphicUses:345Used by:394
Symbol 394 MovieClip {Jirafa}Uses:391 392 393Used by:912 1554
Symbol 395 GraphicUses:352Used by:401
Symbol 396 GraphicUses:354Used by:401
Symbol 397 GraphicUses:356Used by:401
Symbol 398 GraphicUses:358Used by:401
Symbol 399 GraphicUses:360Used by:401
Symbol 400 GraphicUses:362Used by:401
Symbol 401 MovieClip {giraffe_humo}Uses:395 396 397 398 399 400Used by:1554
Symbol 402 GraphicUses:345Used by:405
Symbol 403 GraphicUses:345Used by:405
Symbol 404 GraphicUses:345Used by:405
Symbol 405 MovieClip {Leon}Uses:402 403 404Used by:912 1554
Symbol 406 GraphicUses:369Used by:412
Symbol 407 GraphicUses:371Used by:412
Symbol 408 GraphicUses:373Used by:412
Symbol 409 GraphicUses:375Used by:412
Symbol 410 GraphicUses:377Used by:412
Symbol 411 GraphicUses:379Used by:412
Symbol 412 MovieClip {lion_humo}Uses:406 407 408 409 410 411Used by:1554
Symbol 413 GraphicUses:345Used by:416
Symbol 414 GraphicUses:345Used by:416
Symbol 415 GraphicUses:345Used by:416
Symbol 416 MovieClip {Mono}Uses:413 414 415Used by:912 1554
Symbol 417 GraphicUses:369Used by:423 450
Symbol 418 GraphicUses:371Used by:423 450
Symbol 419 GraphicUses:373Used by:423 450
Symbol 420 GraphicUses:375Used by:423 450
Symbol 421 GraphicUses:377Used by:423 450
Symbol 422 GraphicUses:379Used by:423 450
Symbol 423 MovieClip {monkey_humo}Uses:417 418 419 420 421 422Used by:1554
Symbol 424 GraphicUses:345Used by:427
Symbol 425 GraphicUses:345Used by:427
Symbol 426 GraphicUses:345Used by:427
Symbol 427 MovieClip {Aguila}Uses:424 425 426Used by:912 1554
Symbol 428 BitmapUsed by:429
Symbol 429 GraphicUses:428Used by:440
Symbol 430 BitmapUsed by:431
Symbol 431 GraphicUses:430Used by:440
Symbol 432 BitmapUsed by:433
Symbol 433 GraphicUses:432Used by:440
Symbol 434 BitmapUsed by:435
Symbol 435 GraphicUses:434Used by:440
Symbol 436 BitmapUsed by:437
Symbol 437 GraphicUses:436Used by:440
Symbol 438 BitmapUsed by:439
Symbol 439 GraphicUses:438Used by:440
Symbol 440 MovieClip {parrot_humo}Uses:429 431 433 435 437 439Used by:1554
Symbol 441 GraphicUses:345Used by:444
Symbol 442 GraphicUses:345Used by:444
Symbol 443 GraphicUses:345Used by:444
Symbol 444 MovieClip {Tortuga}Uses:441 442 443Used by:912 1554
Symbol 445 MovieClip {turtle_humo}Uses:384 385 386 387 388 389Used by:1554
Symbol 446 GraphicUses:345Used by:449
Symbol 447 GraphicUses:345Used by:449
Symbol 448 GraphicUses:345Used by:449
Symbol 449 MovieClip {Cebra}Uses:446 447 448Used by:912 1554
Symbol 450 MovieClip {zebra_humo}Uses:417 418 419 420 421 422Used by:1554
Symbol 451 BitmapUsed by:452 453 455 467 470 472 474 475 476 477 478 479 481 483 488 490 493 907 1175
Symbol 452 GraphicUses:451Used by:454
Symbol 453 GraphicUses:451Used by:454
Symbol 454 MovieClipUses:452 453Used by:456
Symbol 455 GraphicUses:451Used by:456
Symbol 456 MovieClip {Abeja}Uses:454 455Used by:912 1554
Symbol 457 BitmapUsed by:458 466 469 482 487 492 495 627 632 795
Symbol 458 GraphicUses:457Used by:459
Symbol 459 MovieClipUses:458Used by:461 1554
Symbol 460 GraphicUsed by:461 465
Symbol 461 MovieClipUses:460 459Used by:912 1554
Symbol 462 BitmapUsed by:463 485 578 579 581 582 584 585 587 588 590 591 742 805 806 807 808 809 810 811 812 834 835 836
Symbol 463 GraphicUses:462Used by:464
Symbol 464 MovieClipUses:463Used by:465 1554
Symbol 465 MovieClipUses:460 464Used by:912 1554
Symbol 466 GraphicUses:457Used by:468
Symbol 467 GraphicUses:451Used by:468
Symbol 468 MovieClip {Bellota}Uses:466 467Used by:912 1554
Symbol 469 GraphicUses:457Used by:471
Symbol 470 GraphicUses:451Used by:471
Symbol 471 MovieClipUses:469 470Used by:473
Symbol 472 GraphicUses:451Used by:473
Symbol 473 MovieClip {Cangrejo}Uses:471 472Used by:912 1554
Symbol 474 GraphicUses:451Used by:480
Symbol 475 GraphicUses:451Used by:480
Symbol 476 GraphicUses:451Used by:480
Symbol 477 GraphicUses:451Used by:480
Symbol 478 GraphicUses:451Used by:480
Symbol 479 GraphicUses:451Used by:480
Symbol 480 MovieClipUses:474 475 476 477 478 479Used by:912 1554
Symbol 481 GraphicUses:451Used by:484
Symbol 482 GraphicUses:457Used by:484
Symbol 483 GraphicUses:451Used by:484
Symbol 484 MovieClipUses:481 482 483Used by:496 1554
Symbol 485 GraphicUses:462Used by:486
Symbol 486 MovieClipUses:485Used by:1554
Symbol 487 GraphicUses:457Used by:489
Symbol 488 GraphicUses:451Used by:489
Symbol 489 MovieClipUses:487 488Used by:491
Symbol 490 GraphicUses:451Used by:491
Symbol 491 MovieClip {Murcielago}Uses:489 490Used by:912 1554
Symbol 492 GraphicUses:457Used by:494
Symbol 493 GraphicUses:451Used by:494
Symbol 494 MovieClip {Piedra}Uses:492 493Used by:912 1554
Symbol 495 GraphicUses:457Used by:496
Symbol 496 MovieClip {PlataformaAscensor}Uses:484 495Used by:1554
Symbol 497 BitmapUsed by:498
Symbol 498 GraphicUses:497Used by:499
Symbol 499 MovieClip {TablonPuente}Uses:498Used by:1554
Symbol 500 BitmapUsed by:501 573 626
Symbol 501 GraphicUses:500Used by:571
Symbol 502 BitmapUsed by:503
Symbol 503 GraphicUses:502Used by:561
Symbol 504 BitmapUsed by:505
Symbol 505 GraphicUses:504Used by:561
Symbol 506 BitmapUsed by:507
Symbol 507 GraphicUses:506Used by:561
Symbol 508 BitmapUsed by:509
Symbol 509 GraphicUses:508Used by:514 561
Symbol 510 BitmapUsed by:511
Symbol 511 GraphicUses:510Used by:514
Symbol 512 BitmapUsed by:513
Symbol 513 GraphicUses:512Used by:514
Symbol 514 MovieClipUses:509 511 513Used by:561
Symbol 515 BitmapUsed by:516
Symbol 516 GraphicUses:515Used by:561
Symbol 517 BitmapUsed by:518
Symbol 518 GraphicUses:517Used by:561
Symbol 519 BitmapUsed by:520
Symbol 520 GraphicUses:519Used by:561
Symbol 521 BitmapUsed by:522
Symbol 522 GraphicUses:521Used by:561
Symbol 523 BitmapUsed by:524
Symbol 524 GraphicUses:523Used by:561
Symbol 525 BitmapUsed by:526
Symbol 526 GraphicUses:525Used by:561
Symbol 527 BitmapUsed by:528
Symbol 528 GraphicUses:527Used by:561
Symbol 529 BitmapUsed by:530
Symbol 530 GraphicUses:529Used by:561
Symbol 531 BitmapUsed by:532
Symbol 532 GraphicUses:531Used by:561
Symbol 533 BitmapUsed by:534
Symbol 534 GraphicUses:533Used by:561
Symbol 535 BitmapUsed by:536
Symbol 536 GraphicUses:535Used by:561
Symbol 537 BitmapUsed by:538
Symbol 538 GraphicUses:537Used by:561
Symbol 539 BitmapUsed by:540
Symbol 540 GraphicUses:539Used by:561
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:561
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:561
Symbol 545 BitmapUsed by:546
Symbol 546 GraphicUses:545Used by:561
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:561
Symbol 549 BitmapUsed by:550
Symbol 550 GraphicUses:549Used by:561
Symbol 551 BitmapUsed by:552
Symbol 552 GraphicUses:551Used by:561
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:561
Symbol 555 BitmapUsed by:556
Symbol 556 GraphicUses:555Used by:561
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:561
Symbol 559 BitmapUsed by:560
Symbol 560 GraphicUses:559Used by:561
Symbol 561 MovieClip {ZooTransport_fla.penguinanimrandom_122}Uses:503 505 507 514 516 518 520 522 524 526 528 530 532 534 536 538 540 542 544 546 548 550 552 554 556 558 509 560Used by:571
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:564
Symbol 564 MovieClip {Remolque1}Uses:563Used by:571 912
Symbol 565 BitmapUsed by:566
Symbol 566 GraphicUses:565Used by:567
Symbol 567 MovieClip {Remolque2}Uses:566Used by:571 912
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:570 1450
Symbol 570 MovieClip {Remolque3}Uses:569Used by:571 912
Symbol 571 MovieClip {Camion}Uses:501 561 564 567 570 9Used by:1554
Symbol 572 BitmapUsed by:573 898 899 900 901 902 903 904 905 906
Symbol 573 GraphicUses:572 500Used by:1554
Symbol 574 GraphicUsed by:575
Symbol 575 MovieClip {Jaula}Uses:574Used by:1554
Symbol 576 MovieClip {ZonaDescargaMC}Used by:1554
Symbol 577 MovieClip {ZonaFinBala}Used by:1554
Symbol 578 GraphicUses:462Used by:580
Symbol 579 GraphicUses:462Used by:580
Symbol 580 MovieClip {ZooTransport_fla.abeja_131}Uses:578 579Used by:1554
Symbol 581 GraphicUses:462Used by:583
Symbol 582 GraphicUses:462Used by:583
Symbol 583 MovieClip {ZooTransport_fla.bellota_132}Uses:581 582Used by:1554
Symbol 584 GraphicUses:462Used by:586
Symbol 585 GraphicUses:462Used by:586
Symbol 586 MovieClip {ZooTransport_fla.cangrejo_133}Uses:584 585Used by:1554
Symbol 587 GraphicUses:462Used by:589
Symbol 588 GraphicUses:462Used by:589
Symbol 589 MovieClip {ZooTransport_fla.murcielago_134}Uses:587 588Used by:1554
Symbol 590 GraphicUses:462Used by:592
Symbol 591 GraphicUses:462Used by:592
Symbol 592 MovieClip {ZooTransport_fla.piedra_135}Uses:590 591Used by:1554
Symbol 593 BitmapUsed by:594
Symbol 594 GraphicUses:593Used by:625
Symbol 595 BitmapUsed by:596
Symbol 596 GraphicUses:595Used by:625
Symbol 597 BitmapUsed by:598
Symbol 598 GraphicUses:597Used by:625
Symbol 599 BitmapUsed by:600
Symbol 600 GraphicUses:599Used by:625
Symbol 601 BitmapUsed by:602
Symbol 602 GraphicUses:601Used by:625
Symbol 603 BitmapUsed by:604
Symbol 604 GraphicUses:603Used by:625
Symbol 605 BitmapUsed by:606
Symbol 606 GraphicUses:605Used by:625
Symbol 607 BitmapUsed by:608
Symbol 608 GraphicUses:607Used by:625
Symbol 609 BitmapUsed by:610
Symbol 610 GraphicUses:609Used by:625
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:625
Symbol 613 BitmapUsed by:614
Symbol 614 GraphicUses:613Used by:625
Symbol 615 BitmapUsed by:616
Symbol 616 GraphicUses:615Used by:625
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:625
Symbol 619 BitmapUsed by:620
Symbol 620 GraphicUses:619Used by:625
Symbol 621 BitmapUsed by:622
Symbol 622 GraphicUses:621Used by:625
Symbol 623 BitmapUsed by:624
Symbol 624 GraphicUses:623Used by:625
Symbol 625 MovieClipUses:594 596 598 600 602 604 606 608 610 612 614 616 618 620 622 624Used by:912 1554
Symbol 626 GraphicUses:500Used by:912
Symbol 627 GraphicUses:457Used by:912
Symbol 628 GraphicUsed by:912
Symbol 629 FontUsed by:630 635 637 984 986 1011 1013 1064 1065 1066 1086 1087 1088 1089 1090 1091 1092 1093 1094 1116 1186
Symbol 630 EditableTextUses:629Used by:912
Symbol 631 GraphicUsed by:912
Symbol 632 GraphicUses:457Used by:912
Symbol 633 GraphicUsed by:912
Symbol 634 GraphicUsed by:912
Symbol 635 EditableTextUses:629Used by:912
Symbol 636 GraphicUsed by:912
Symbol 637 EditableTextUses:629Used by:912
Symbol 638 GraphicUsed by:912
Symbol 639 GraphicUsed by:912
Symbol 640 GraphicUsed by:912
Symbol 641 GraphicUsed by:912
Symbol 642 GraphicUsed by:912
Symbol 643 BitmapUsed by:644
Symbol 644 GraphicUses:643Used by:912
Symbol 645 BitmapUsed by:646 738 1451
Symbol 646 GraphicUses:645Used by:912
Symbol 647 BitmapUsed by:648
Symbol 648 GraphicUses:647Used by:912
Symbol 649 BitmapUsed by:650
Symbol 650 GraphicUses:649Used by:912
Symbol 651 BitmapUsed by:652
Symbol 652 GraphicUses:651Used by:912
Symbol 653 BitmapUsed by:654
Symbol 654 GraphicUses:653Used by:912
Symbol 655 BitmapUsed by:656
Symbol 656 GraphicUses:655Used by:912
Symbol 657 BitmapUsed by:658
Symbol 658 GraphicUses:657Used by:912
Symbol 659 BitmapUsed by:660
Symbol 660 GraphicUses:659Used by:912
Symbol 661 BitmapUsed by:662
Symbol 662 GraphicUses:661Used by:912
Symbol 663 BitmapUsed by:664
Symbol 664 GraphicUses:663Used by:912
Symbol 665 BitmapUsed by:666
Symbol 666 GraphicUses:665Used by:912
Symbol 667 BitmapUsed by:668 673
Symbol 668 GraphicUses:667Used by:912
Symbol 669 BitmapUsed by:670
Symbol 670 GraphicUses:669Used by:912
Symbol 671 BitmapUsed by:672
Symbol 672 GraphicUses:671Used by:912
Symbol 673 GraphicUses:667Used by:912
Symbol 674 BitmapUsed by:675 678
Symbol 675 GraphicUses:674Used by:912
Symbol 676 BitmapUsed by:677 679
Symbol 677 GraphicUses:676Used by:912
Symbol 678 GraphicUses:674Used by:912
Symbol 679 GraphicUses:676Used by:912
Symbol 680 BitmapUsed by:681
Symbol 681 GraphicUses:680Used by:912
Symbol 682 BitmapUsed by:683 739
Symbol 683 GraphicUses:682Used by:912
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:912
Symbol 686 BitmapUsed by:687 688
Symbol 687 GraphicUses:686Used by:912
Symbol 688 GraphicUses:686Used by:912
Symbol 689 BitmapUsed by:690
Symbol 690 GraphicUses:689Used by:912
Symbol 691 BitmapUsed by:692 740
Symbol 692 GraphicUses:691Used by:912
Symbol 693 GraphicUses:11Used by:912
Symbol 694 BitmapUsed by:695 741 1451
Symbol 695 GraphicUses:694Used by:912
Symbol 696 BitmapUsed by:697 720
Symbol 697 GraphicUses:696Used by:912
Symbol 698 BitmapUsed by:699 721 743 746
Symbol 699 GraphicUses:698Used by:912
Symbol 700 BitmapUsed by:701 722
Symbol 701 GraphicUses:700Used by:912
Symbol 702 BitmapUsed by:703 723
Symbol 703 GraphicUses:702Used by:912
Symbol 704 BitmapUsed by:705 724
Symbol 705 GraphicUses:704Used by:912
Symbol 706 BitmapUsed by:707 725 744 747
Symbol 707 GraphicUses:706Used by:912
Symbol 708 BitmapUsed by:709 726
Symbol 709 GraphicUses:708Used by:912
Symbol 710 BitmapUsed by:711 727
Symbol 711 GraphicUses:710Used by:912
Symbol 712 BitmapUsed by:713 728
Symbol 713 GraphicUses:712Used by:912
Symbol 714 BitmapUsed by:715 729 745 748
Symbol 715 GraphicUses:714Used by:912
Symbol 716 BitmapUsed by:717 730
Symbol 717 GraphicUses:716Used by:912
Symbol 718 BitmapUsed by:719 731
Symbol 719 GraphicUses:718Used by:912
Symbol 720 GraphicUses:696Used by:912
Symbol 721 GraphicUses:698Used by:912
Symbol 722 GraphicUses:700Used by:912
Symbol 723 GraphicUses:702Used by:912
Symbol 724 GraphicUses:704Used by:912
Symbol 725 GraphicUses:706Used by:912
Symbol 726 GraphicUses:708Used by:912
Symbol 727 GraphicUses:710Used by:912
Symbol 728 GraphicUses:712Used by:912
Symbol 729 GraphicUses:714Used by:912
Symbol 730 GraphicUses:716Used by:912
Symbol 731 GraphicUses:718Used by:912
Symbol 732 BitmapUsed by:733
Symbol 733 GraphicUses:732Used by:912
Symbol 734 BitmapUsed by:735
Symbol 735 GraphicUses:734Used by:912
Symbol 736 BitmapUsed by:737
Symbol 737 GraphicUses:736Used by:912
Symbol 738 GraphicUses:645Used by:912
Symbol 739 GraphicUses:682Used by:912
Symbol 740 GraphicUses:691Used by:912
Symbol 741 GraphicUses:694Used by:912
Symbol 742 GraphicUses:462Used by:912
Symbol 743 GraphicUses:698Used by:912
Symbol 744 GraphicUses:706Used by:912
Symbol 745 GraphicUses:714Used by:912
Symbol 746 GraphicUses:698Used by:912
Symbol 747 GraphicUses:706Used by:912
Symbol 748 GraphicUses:714Used by:912
Symbol 749 BitmapUsed by:750
Symbol 750 GraphicUses:749Used by:912
Symbol 751 BitmapUsed by:752
Symbol 752 GraphicUses:751Used by:912
Symbol 753 BitmapUsed by:754
Symbol 754 GraphicUses:753Used by:912
Symbol 755 BitmapUsed by:756
Symbol 756 GraphicUses:755Used by:912
Symbol 757 BitmapUsed by:758
Symbol 758 GraphicUses:757Used by:912
Symbol 759 BitmapUsed by:760
Symbol 760 GraphicUses:759Used by:912
Symbol 761 BitmapUsed by:762
Symbol 762 GraphicUses:761Used by:912
Symbol 763 BitmapUsed by:764
Symbol 764 GraphicUses:763Used by:912
Symbol 765 BitmapUsed by:766
Symbol 766 GraphicUses:765Used by:912
Symbol 767 BitmapUsed by:768
Symbol 768 GraphicUses:767Used by:912
Symbol 769 BitmapUsed by:770
Symbol 770 GraphicUses:769Used by:912
Symbol 771 BitmapUsed by:772
Symbol 772 GraphicUses:771Used by:912
Symbol 773 BitmapUsed by:774
Symbol 774 GraphicUses:773Used by:912
Symbol 775 GraphicUsed by:912
Symbol 776 BitmapUsed by:777 778 779 780 781 782
Symbol 777 GraphicUses:776Used by:912
Symbol 778 GraphicUses:776Used by:912
Symbol 779 GraphicUses:776Used by:912
Symbol 780 GraphicUses:776Used by:912
Symbol 781 GraphicUses:776Used by:912
Symbol 782 GraphicUses:776Used by:912
Symbol 783 BitmapUsed by:784 785 786 787 788 789
Symbol 784 GraphicUses:783Used by:912
Symbol 785 GraphicUses:783Used by:912
Symbol 786 GraphicUses:783Used by:912
Symbol 787 GraphicUses:783Used by:912
Symbol 788 GraphicUses:783Used by:912
Symbol 789 GraphicUses:783Used by:912
Symbol 790 BitmapUsed by:791 792 793 794 801 802 803
Symbol 791 GraphicUses:790Used by:912
Symbol 792 GraphicUses:790Used by:912
Symbol 793 GraphicUses:790Used by:912
Symbol 794 GraphicUses:790Used by:912
Symbol 795 GraphicUses:457Used by:912
Symbol 796 BitmapUsed by:797 798 799 800
Symbol 797 GraphicUses:796Used by:912
Symbol 798 GraphicUses:796Used by:912
Symbol 799 GraphicUses:796Used by:912
Symbol 800 GraphicUses:796Used by:912
Symbol 801 GraphicUses:790Used by:912
Symbol 802 GraphicUses:790Used by:912
Symbol 803 GraphicUses:790Used by:912
Symbol 804 GraphicUsed by:912
Symbol 805 GraphicUses:462Used by:912
Symbol 806 GraphicUses:462Used by:912
Symbol 807 GraphicUses:462Used by:912
Symbol 808 GraphicUses:462Used by:912
Symbol 809 GraphicUses:462Used by:912
Symbol 810 GraphicUses:462Used by:912
Symbol 811 GraphicUses:462Used by:912
Symbol 812 GraphicUses:462Used by:912
Symbol 813 BitmapUsed by:814
Symbol 814 GraphicUses:813Used by:833
Symbol 815 BitmapUsed by:816
Symbol 816 GraphicUses:815Used by:833
Symbol 817 BitmapUsed by:818
Symbol 818 GraphicUses:817Used by:833
Symbol 819 BitmapUsed by:820
Symbol 820 GraphicUses:819Used by:833
Symbol 821 BitmapUsed by:822
Symbol 822 GraphicUses:821Used by:833
Symbol 823 BitmapUsed by:824
Symbol 824 GraphicUses:823Used by:833
Symbol 825 BitmapUsed by:826
Symbol 826 GraphicUses:825Used by:833
Symbol 827 BitmapUsed by:828
Symbol 828 GraphicUses:827Used by:833
Symbol 829 BitmapUsed by:830
Symbol 830 GraphicUses:829Used by:833
Symbol 831 BitmapUsed by:832
Symbol 832 GraphicUses:831Used by:833
Symbol 833 MovieClipUses:814 816 818 820 822 824 826 828 830 832Used by:912
Symbol 834 GraphicUses:462Used by:912
Symbol 835 GraphicUses:462Used by:912
Symbol 836 GraphicUses:462Used by:912
Symbol 837 BitmapUsed by:838
Symbol 838 GraphicUses:837Used by:912
Symbol 839 BitmapUsed by:840
Symbol 840 GraphicUses:839Used by:912
Symbol 841 BitmapUsed by:842
Symbol 842 GraphicUses:841Used by:912
Symbol 843 BitmapUsed by:844
Symbol 844 GraphicUses:843Used by:912
Symbol 845 BitmapUsed by:846
Symbol 846 GraphicUses:845Used by:912
Symbol 847 BitmapUsed by:848
Symbol 848 GraphicUses:847Used by:912
Symbol 849 BitmapUsed by:850
Symbol 850 GraphicUses:849Used by:912
Symbol 851 BitmapUsed by:852
Symbol 852 GraphicUses:851Used by:912
Symbol 853 BitmapUsed by:854
Symbol 854 GraphicUses:853Used by:912
Symbol 855 BitmapUsed by:856
Symbol 856 GraphicUses:855Used by:912
Symbol 857 BitmapUsed by:858 859 860 861 862 863 864 865 866 867 868 869
Symbol 858 GraphicUses:857Used by:912
Symbol 859 GraphicUses:857Used by:912
Symbol 860 GraphicUses:857Used by:912
Symbol 861 GraphicUses:857Used by:912
Symbol 862 GraphicUses:857Used by:912
Symbol 863 GraphicUses:857Used by:912
Symbol 864 GraphicUses:857Used by:912
Symbol 865 GraphicUses:857Used by:912
Symbol 866 GraphicUses:857Used by:912
Symbol 867 GraphicUses:857Used by:912
Symbol 868 GraphicUses:857Used by:912
Symbol 869 GraphicUses:857Used by:912
Symbol 870 BitmapUsed by:871 892
Symbol 871 GraphicUses:870Used by:912
Symbol 872 BitmapUsed by:873
Symbol 873 GraphicUses:872Used by:912
Symbol 874 BitmapUsed by:875
Symbol 875 GraphicUses:874Used by:912
Symbol 876 BitmapUsed by:877
Symbol 877 GraphicUses:876Used by:912
Symbol 878 BitmapUsed by:879
Symbol 879 GraphicUses:878Used by:912
Symbol 880 BitmapUsed by:881
Symbol 881 GraphicUses:880Used by:912
Symbol 882 BitmapUsed by:883
Symbol 883 GraphicUses:882Used by:912
Symbol 884 BitmapUsed by:885
Symbol 885 GraphicUses:884Used by:912
Symbol 886 BitmapUsed by:887
Symbol 887 GraphicUses:886Used by:912
Symbol 888 BitmapUsed by:889
Symbol 889 GraphicUses:888Used by:912
Symbol 890 BitmapUsed by:891
Symbol 891 GraphicUses:890Used by:912
Symbol 892 GraphicUses:870Used by:912
Symbol 893 BitmapUsed by:894 895 896 897 908 909 910 911
Symbol 894 GraphicUses:893Used by:912
Symbol 895 GraphicUses:893Used by:912
Symbol 896 GraphicUses:893Used by:912
Symbol 897 GraphicUses:893Used by:912
Symbol 898 GraphicUses:572Used by:912
Symbol 899 GraphicUses:572Used by:912
Symbol 900 GraphicUses:572Used by:912
Symbol 901 GraphicUses:572Used by:912
Symbol 902 GraphicUses:572Used by:912
Symbol 903 GraphicUses:572Used by:912
Symbol 904 GraphicUses:572Used by:912
Symbol 905 GraphicUses:572Used by:912
Symbol 906 GraphicUses:572Used by:912
Symbol 907 GraphicUses:451Used by:912
Symbol 908 GraphicUses:893Used by:912
Symbol 909 GraphicUses:893Used by:912
Symbol 910 GraphicUses:893Used by:912
Symbol 911 GraphicUses:893Used by:912
Symbol 912 MovieClip {catalogoTiles}Uses:626 564 567 570 627 628 630 368 427 405 449 416 351 394 444 383 631 632 633 468 456 491 473 494 634 635 636 637 638 639 640 641 642 644 646 648 650 461 625 652 654 656 658 660 662 664 666 668 670 672 673 675 677 678 679 681 683 685 687 688 690 692 693 695 697 699 701 703 705 707 709 711 713 715 717 719 720 721 722 723 724 725 726 727 728 729 730 731 733 735 737 738 739 740 741 742 743 744 745 746 747 748 750 752 754 756 758 760 762 764 766 768 770 772 774 775 777 778 779 780 781 782 784 785 786 787 788 789 791 792 793 794 465 795 797 798 799 800 801 802 803 804 805 806 807 480 808 809 810 811 812 833 834 835 836 838 840 842 844 846 848 850 852 854 856 858 859 860 861 862 863 864 865 866 867 868 869 871 873 875 877 879 881 883 885 887 889 891 892 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911Used by:1554
Symbol 913 BitmapUsed by:914
Symbol 914 GraphicUses:913Used by:934
Symbol 915 BitmapUsed by:916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933
Symbol 916 GraphicUses:915Used by:934
Symbol 917 GraphicUses:915Used by:934
Symbol 918 GraphicUses:915Used by:934
Symbol 919 GraphicUses:915Used by:934
Symbol 920 GraphicUses:915Used by:934
Symbol 921 GraphicUses:915Used by:934
Symbol 922 GraphicUses:915Used by:934
Symbol 923 GraphicUses:915Used by:934
Symbol 924 GraphicUses:915Used by:934
Symbol 925 GraphicUses:915Used by:934
Symbol 926 GraphicUses:915Used by:934
Symbol 927 GraphicUses:915Used by:934
Symbol 928 GraphicUses:915Used by:934
Symbol 929 GraphicUses:915Used by:934
Symbol 930 GraphicUses:915Used by:934
Symbol 931 GraphicUses:915Used by:934
Symbol 932 GraphicUses:915Used by:934
Symbol 933 GraphicUses:915Used by:934
Symbol 934 MovieClipUses:914 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933Used by:945 1554
Symbol 935 BitmapUsed by:936 938
Symbol 936 GraphicUses:935Used by:1554
Symbol 937 BitmapUsed by:938 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965
Symbol 938 GraphicUses:937 935Used by:945
Symbol 939 BitmapUsed by:940
Symbol 940 GraphicUses:939Used by:941
Symbol 941 MovieClipUses:940Used by:945
Symbol 942 GraphicUses:13Used by:944
Symbol 943 GraphicUses:13Used by:944
Symbol 944 ButtonUses:942 943Used by:945 1268 1442
Symbol 945 MovieClip {Logros}Uses:938 941 944 934Used by:1554
Symbol 946 BitmapUsed by:947
Symbol 947 GraphicUses:946Used by:966
Symbol 948 GraphicUses:937Used by:966
Symbol 949 GraphicUses:937Used by:966
Symbol 950 GraphicUses:937Used by:966
Symbol 951 GraphicUses:937Used by:966
Symbol 952 GraphicUses:937Used by:966
Symbol 953 GraphicUses:937Used by:966
Symbol 954 GraphicUses:937Used by:966
Symbol 955 GraphicUses:937Used by:966
Symbol 956 GraphicUses:937Used by:966
Symbol 957 GraphicUses:937Used by:966
Symbol 958 GraphicUses:937Used by:966
Symbol 959 GraphicUses:937Used by:966
Symbol 960 GraphicUses:937Used by:966
Symbol 961 GraphicUses:937Used by:966
Symbol 962 GraphicUses:937Used by:966
Symbol 963 GraphicUses:937Used by:966
Symbol 964 GraphicUses:937Used by:966
Symbol 965 GraphicUses:937Used by:966
Symbol 966 MovieClip {achipopups}Uses:947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965Used by:1554
Symbol 967 BitmapUsed by:968
Symbol 968 GraphicUses:967Used by:974
Symbol 969 BitmapUsed by:970 972
Symbol 970 GraphicUses:969Used by:971
Symbol 971 MovieClipUses:970Used by:974
Symbol 972 GraphicUses:969Used by:973
Symbol 973 MovieClipUses:972Used by:974
Symbol 974 MovieClipUses:968 971 973Used by:975
Symbol 975 MovieClip {Final}Uses:974 140Used by:1554
Symbol 976 MovieClipUses:55 57Used by:1554
Symbol 977 BitmapUsed by:979 980 1474
Symbol 978 BitmapUsed by:979 980 1474
Symbol 979 GraphicUses:977 978Used by:981
Symbol 980 GraphicUses:977 978Used by:981
Symbol 981 ButtonUses:979 980Used by:1205 1210 1554
Symbol 982 GraphicUses:151 173Used by:1554
Symbol 983 GraphicUses:152Used by:987 1014
Symbol 984 EditableTextUses:629Used by:987
Symbol 985 GraphicUses:152Used by:987
Symbol 986 EditableTextUses:629Used by:987
Symbol 987 ButtonUses:983 984 985 986Used by:1095 1554
Symbol 988 BitmapUsed by:989
Symbol 989 GraphicUses:146 988Used by:1554
Symbol 990 BitmapUsed by:991
Symbol 991 GraphicUses:990Used by:992 1069
Symbol 992 MovieClipUses:991Used by:1554
Symbol 993 BitmapUsed by:994 1019
Symbol 994 GraphicUses:993Used by:1554
Symbol 995 BitmapUsed by:996 997 1004 1005 1007 1008
Symbol 996 GraphicUses:995 152Used by:998
Symbol 997 GraphicUses:995 152Used by:998
Symbol 998 ButtonUses:996 997Used by:1021 1554
Symbol 999 BitmapUsed by:1003 1072
Symbol 1000 BitmapUsed by:1003
Symbol 1001 BitmapUsed by:1003 1019 1072
Symbol 1002 BitmapUsed by:1003 1022
Symbol 1003 GraphicUses:999 1000 1001 1002Used by:1554
Symbol 1004 GraphicUses:995 152Used by:1006
Symbol 1005 GraphicUses:995 152Used by:1006
Symbol 1006 ButtonUses:1004 1005Used by:1074 1554
Symbol 1007 GraphicUses:995 152Used by:1009
Symbol 1008 GraphicUses:995 152Used by:1009
Symbol 1009 ButtonUses:1007 1008Used by:1074 1554
Symbol 1010 GraphicUses:166Used by:1554
Symbol 1011 EditableTextUses:629Used by:1014
Symbol 1012 GraphicUses:152Used by:1014
Symbol 1013 EditableTextUses:629Used by:1014
Symbol 1014 ButtonUses:983 1011 1012 1013Used by:1095 1554
Symbol 1015 BitmapUsed by:1018 1079
Symbol 1016 BitmapUsed by:1018 1083
Symbol 1017 BitmapUsed by:1018 1081
Symbol 1018 GraphicUses:1015 1016 1017 195Used by:1554
Symbol 1019 GraphicUses:993 1001Used by:1021
Symbol 1020 EditableTextUses:160Used by:1021
Symbol 1021 MovieClip {menuCargar}Uses:1019 1020 998 58Used by:1554
Symbol 1022 GraphicUses:1002Used by:1070
Symbol 1023 MovieClip {fl.controls.TileList}Uses:247 248 312 265 286 318Used by:1070
Symbol 1024 GraphicUses:52 50Used by:1034
Symbol 1025 BitmapUsed by:1027 1036 1040 1044 1048 1052 1056 1060
Symbol 1026 BitmapUsed by:1027 1036 1040 1044 1048 1052 1056 1060
Symbol 1027 GraphicUses:1025 1026Used by:1034
Symbol 1028 BitmapUsed by:1030 1037 1041 1045 1049 1053 1057 1061
Symbol 1029 BitmapUsed by:1030 1037 1041 1045 1049 1053 1057 1061
Symbol 1030 GraphicUses:1028 1029Used by:1034
Symbol 1031 BitmapUsed by:1032
Symbol 1032 GraphicUses:1031Used by:1033
Symbol 1033 MovieClipUses:1032Used by:1034 1038 1042 1046 1050 1054 1058 1062
Symbol 1034 MovieClipUses:1024 1027 1030 1033Used by:1070 1554
Symbol 1035 GraphicUses:52 50Used by:1038
Symbol 1036 GraphicUses:1025 1026Used by:1038
Symbol 1037 GraphicUses:1028 1029Used by:1038
Symbol 1038 MovieClipUses:1035 1036 1037 1033Used by:1070 1554
Symbol 1039 GraphicUses:52 50Used by:1042
Symbol 1040 GraphicUses:1025 1026Used by:1042
Symbol 1041 GraphicUses:1028 1029Used by:1042
Symbol 1042 MovieClipUses:1039 1040 1041 1033Used by:1070 1554
Symbol 1043 GraphicUses:52 50Used by:1046
Symbol 1044 GraphicUses:1025 1026Used by:1046
Symbol 1045 GraphicUses:1028 1029Used by:1046
Symbol 1046 MovieClipUses:1043 1044 1045 1033Used by:1070 1554
Symbol 1047 GraphicUses:52 50Used by:1050
Symbol 1048 GraphicUses:1025 1026Used by:1050
Symbol 1049 GraphicUses:1028 1029Used by:1050
Symbol 1050 MovieClipUses:1047 1048 1049 1033Used by:1070 1554
Symbol 1051 GraphicUses:52 50Used by:1054
Symbol 1052 GraphicUses:1025 1026Used by:1054
Symbol 1053 GraphicUses:1028 1029Used by:1054
Symbol 1054 MovieClipUses:1051 1052 1053 1033Used by:1070 1554
Symbol 1055 GraphicUses:52 50Used by:1058
Symbol 1056 GraphicUses:1025 1026Used by:1058
Symbol 1057 GraphicUses:1028 1029Used by:1058
Symbol 1058 MovieClipUses:1055 1056 1057 1033Used by:1070 1554
Symbol 1059 GraphicUses:52 50Used by:1062
Symbol 1060 GraphicUses:1025 1026Used by:1062
Symbol 1061 GraphicUses:1028 1029Used by:1062
Symbol 1062 MovieClipUses:1059 1060 1061 1033Used by:1070 1554
Symbol 1063 MovieClip {fl.controls.NumericStepper}Uses:247 248 286 268 270 272 274 276 278 280 282Used by:1070
Symbol 1064 EditableTextUses:629Used by:1070
Symbol 1065 EditableTextUses:629Used by:1070
Symbol 1066 EditableTextUses:629Used by:1070
Symbol 1067 ButtonUses:147 148Used by:1070
Symbol 1068 ButtonUses:167 168Used by:1070
Symbol 1069 ButtonUses:991Used by:1070
Symbol 1070 MovieClip {menuCatalogoTiles}Uses:1022 1023 155 158 184 189 165 149 169 1034 1038 1042 1046 1050 1054 1058 1062 1063 1064 1065 1066 1067 1068 199 203 207 150 170 181 1069Used by:1554
Symbol 1071 MovieClipUsed by:1554
Symbol 1072 GraphicUses:999 1001Used by:1074
Symbol 1073 EditableTextUses:160Used by:1074
Symbol 1074 MovieClip {menuGuardar}Uses:1072 1073 58 1006 1009Used by:1554
Symbol 1075 GraphicUsed by:1076
Symbol 1076 MovieClipUses:1075Used by:1078
Symbol 1077 TextUses:160Used by:1078
Symbol 1078 MovieClip {menuMinimapa}Uses:1076 172 1077Used by:1554
Symbol 1079 GraphicUses:1015Used by:1080
Symbol 1080 MovieClip {panelAyuda}Uses:1079 58Used by:1554
Symbol 1081 GraphicUses:1017Used by:1082
Symbol 1082 MovieClip {panelBorrarTodo}Uses:1081 192 176Used by:1554
Symbol 1083 GraphicUses:1016Used by:1084
Symbol 1084 MovieClip {panelErrorEditor}Uses:1083 179Used by:1554
Symbol 1085 GraphicUsed by:1095
Symbol 1086 EditableTextUses:629Used by:1095
Symbol 1087 EditableTextUses:629Used by:1095
Symbol 1088 EditableTextUses:629Used by:1095
Symbol 1089 EditableTextUses:629Used by:1095
Symbol 1090 EditableTextUses:629Used by:1095
Symbol 1091 EditableTextUses:629Used by:1095
Symbol 1092 EditableTextUses:629Used by:1095
Symbol 1093 EditableTextUses:629Used by:1095
Symbol 1094 EditableTextUses:629Used by:1095
Symbol 1095 MovieClip {panelSubirNivel}Uses:1085 1014 987 1086 1087 1088 1089 1090 1091 1092 1093 1094Used by:1554
Symbol 1096 GraphicUses:134Used by:1098 1109
Symbol 1097 GraphicUses:134Used by:1098 1109
Symbol 1098 MovieClipUses:1096 1097Used by:1554
Symbol 1099 GraphicUses:134Used by:1101 1108
Symbol 1100 GraphicUses:134Used by:1101 1108
Symbol 1101 MovieClipUses:1099 1100Used by:1554
Symbol 1102 GraphicUses:134Used by:1104 1119
Symbol 1103 GraphicUses:134Used by:1104 1119
Symbol 1104 MovieClip {ZooTransport_fla.ingameinterface_walkbutton_183}Uses:1102 1103Used by:1554
Symbol 1105 MovieClip {menuBombas}Used by:1188 1554
Symbol 1106 GraphicUsed by:1188
Symbol 1107 GraphicUses:134Used by:1187
Symbol 1108 ButtonUses:1099 1100Used by:1187
Symbol 1109 ButtonUses:1096 1097Used by:1187
Symbol 1110 GraphicUses:134Used by:1112
Symbol 1111 GraphicUses:134Used by:1112
Symbol 1112 MovieClipUses:1110 1111Used by:1187 1263 1442
Symbol 1113 GraphicUses:134Used by:1115
Symbol 1114 GraphicUses:134Used by:1115
Symbol 1115 MovieClipUses:1113 1114Used by:1187 1263 1442
Symbol 1116 EditableTextUses:629Used by:1187
Symbol 1117 ButtonUses:233 234 237 238 232 213Used by:1187
Symbol 1118 ButtonUses:240 241 237 242 232 213Used by:1187
Symbol 1119 ButtonUses:1102 1103Used by:1187
Symbol 1120 GraphicUses:134Used by:1159 1174
Symbol 1121 GraphicUses:134Used by:1159 1174
Symbol 1122 GraphicUses:134Used by:1159
Symbol 1123 GraphicUses:134Used by:1159
Symbol 1124 GraphicUses:134Used by:1159
Symbol 1125 GraphicUses:134Used by:1159
Symbol 1126 GraphicUses:134Used by:1159
Symbol 1127 GraphicUses:134Used by:1159
Symbol 1128 GraphicUses:134Used by:1159
Symbol 1129 GraphicUses:134Used by:1159
Symbol 1130 GraphicUses:134Used by:1159
Symbol 1131 GraphicUses:134Used by:1159
Symbol 1132 GraphicUses:134Used by:1159
Symbol 1133 GraphicUses:134Used by:1159
Symbol 1134 GraphicUses:134Used by:1159
Symbol 1135 GraphicUses:134Used by:1159
Symbol 1136 GraphicUses:134Used by:1159
Symbol 1137 GraphicUses:134Used by:1159
Symbol 1138 GraphicUses:134Used by:1159
Symbol 1139 GraphicUses:134Used by:1159
Symbol 1140 GraphicUses:134Used by:1159
Symbol 1141 GraphicUses:134Used by:1159
Symbol 1142 GraphicUses:134Used by:1159
Symbol 1143 GraphicUses:134Used by:1159
Symbol 1144 GraphicUses:134Used by:1159
Symbol 1145 GraphicUses:134Used by:1159
Symbol 1146 GraphicUses:134Used by:1159
Symbol 1147 GraphicUses:134Used by:1159
Symbol 1148 GraphicUses:134Used by:1159
Symbol 1149 GraphicUses:134Used by:1159
Symbol 1150 GraphicUses:134Used by:1159
Symbol 1151 GraphicUses:134Used by:1159
Symbol 1152 GraphicUses:134Used by:1159
Symbol 1153 GraphicUses:134Used by:1159
Symbol 1154 GraphicUses:134Used by:1159
Symbol 1155 GraphicUses:134Used by:1159
Symbol 1156 GraphicUses:134Used by:1159
Symbol 1157 GraphicUses:134Used by:1159
Symbol 1158 GraphicUses:134Used by:1159
Symbol 1159 MovieClipUses:1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158Used by:1187
Symbol 1160 GraphicUses:134Used by:1174
Symbol 1161 GraphicUses:134Used by:1174
Symbol 1162 GraphicUses:134Used by:1174
Symbol 1163 GraphicUses:134Used by:1174
Symbol 1164 GraphicUses:134Used by:1174
Symbol 1165 GraphicUses:134Used by:1174
Symbol 1166 GraphicUses:134Used by:1174
Symbol 1167 GraphicUses:134Used by:1174
Symbol 1168 GraphicUses:134Used by:1174
Symbol 1169 GraphicUses:134Used by:1174
Symbol 1170 GraphicUses:134Used by:1174
Symbol 1171 GraphicUses:134Used by:1174
Symbol 1172 GraphicUses:134Used by:1174
Symbol 1173 GraphicUses:134Used by:1174
Symbol 1174 MovieClipUses:1120 1121 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173Used by:1187
Symbol 1175 GraphicUses:451Used by:1185
Symbol 1176 BitmapUsed by:1177
Symbol 1177 GraphicUses:1176Used by:1184
Symbol 1178 BitmapUsed by:1179
Symbol 1179 GraphicUses:1178Used by:1184
Symbol 1180 BitmapUsed by:1181
Symbol 1181 GraphicUses:1180Used by:1184
Symbol 1182 BitmapUsed by:1183
Symbol 1183 GraphicUses:1182Used by:1184
Symbol 1184 MovieClipUses:1177 1179 1181 1183Used by:1185
Symbol 1185 MovieClipUses:1175 1184Used by:1187
Symbol 1186 EditableTextUses:629Used by:1187
Symbol 1187 MovieClip {menuEnJuego}Uses:1107 1108 1109 1112 1115 1116 1117 1118 1119 1159 1174 1185 1186Used by:1188
Symbol 1188 MovieClipUses:1105 1106 1187Used by:1554
Symbol 1189 BitmapUsed by:1190 1204 1209
Symbol 1190 GraphicUses:1189Used by:1191
Symbol 1191 MovieClipUses:1190Used by:1208 1554
Symbol 1192 BitmapUsed by:1194 1206
Symbol 1193 BitmapUsed by:1194 1198
Symbol 1194 GraphicUses:1192 1193Used by:1554
Symbol 1195 BitmapUsed by:1196 1201 1202
Symbol 1196 GraphicUses:1195Used by:1197
Symbol 1197 MovieClipUses:1196Used by:1200 1554
Symbol 1198 GraphicUses:1193Used by:1205
Symbol 1199 GraphicUsed by:1205
Symbol 1200 MovieClipUses:1197Used by:1205
Symbol 1201 GraphicUses:1195Used by:1203
Symbol 1202 GraphicUses:1195Used by:1203
Symbol 1203 MovieClipUses:1201 1202Used by:1205
Symbol 1204 GraphicUses:1189Used by:1205
Symbol 1205 MovieClip {menuMisionCumplida}Uses:1198 1199 1200 1203 1204 140 143 137 981Used by:1554
Symbol 1206 GraphicUses:1192Used by:1210
Symbol 1207 GraphicUsed by:1210
Symbol 1208 MovieClipUses:1191Used by:1210
Symbol 1209 GraphicUses:1189Used by:1210
Symbol 1210 MovieClip {menuMisionFallida}Uses:1206 1207 1208 1209 140 137 981Used by:1554
Symbol 1211 BitmapUsed by:1213
Symbol 1212 BitmapUsed by:1213
Symbol 1213 GraphicUses:1211 1212Used by:1554
Symbol 1214 BitmapUsed by:1215
Symbol 1215 GraphicUses:1214Used by:1554
Symbol 1216 BitmapUsed by:1217 1512
Symbol 1217 GraphicUses:1216Used by:1218
Symbol 1218 MovieClip {loadingscreen}Uses:1217Used by:1554
Symbol 1219 BitmapUsed by:1220 1221 1222 1223 1224 1226 1228 1230 1232 1234 1236
Symbol 1220 GraphicUses:1219Used by:1225
Symbol 1221 GraphicUses:1219Used by:1225
Symbol 1222 GraphicUses:1219Used by:1225
Symbol 1223 GraphicUses:1219Used by:1225
Symbol 1224 GraphicUses:1219Used by:1225
Symbol 1225 MovieClipUses:1220 1221 1222 1223 1224Used by:1238
Symbol 1226 GraphicUses:1219Used by:1227
Symbol 1227 MovieClipUses:1226Used by:1238
Symbol 1228 GraphicUses:1219Used by:1229
Symbol 1229 MovieClipUses:1228Used by:1238
Symbol 1230 GraphicUses:1219Used by:1231
Symbol 1231 MovieClipUses:1230Used by:1238
Symbol 1232 GraphicUses:1219Used by:1233
Symbol 1233 MovieClipUses:1232Used by:1238
Symbol 1234 GraphicUses:1219Used by:1235
Symbol 1235 MovieClipUses:1234Used by:1238
Symbol 1236 GraphicUses:1219Used by:1237
Symbol 1237 MovieClipUses:1236Used by:1238
Symbol 1238 MovieClipUses:1225 1227 1229 1231 1233 1235 1237Used by:1263 1554
Symbol 1239 BitmapUsed by:1241
Symbol 1240 BitmapUsed by:1241
Symbol 1241 GraphicUses:1239 1240Used by:1263
Symbol 1242 GraphicUses:13Used by:1244
Symbol 1243 GraphicUses:13Used by:1244
Symbol 1244 ButtonUses:1242 1243Used by:1263
Symbol 1245 GraphicUses:13Used by:1247
Symbol 1246 GraphicUses:13Used by:1247
Symbol 1247 ButtonUses:1245 1246Used by:1263
Symbol 1248 GraphicUses:13Used by:1250
Symbol 1249 GraphicUses:13Used by:1250
Symbol 1250 ButtonUses:1248 1249Used by:1263
Symbol 1251 BitmapUsed by:1252 1512
Symbol 1252 GraphicUses:1251Used by:1256
Symbol 1253 BitmapUsed by:1255 1512
Symbol 1254 BitmapUsed by:1255 1512
Symbol 1255 GraphicUses:1253 1254Used by:1256
Symbol 1256 ButtonUses:1252 1255Used by:1263
Symbol 1257 GraphicUses:13Used by:1259
Symbol 1258 GraphicUses:13Used by:1259
Symbol 1259 ButtonUses:1257 1258Used by:1263
Symbol 1260 GraphicUses:13Used by:1262
Symbol 1261 GraphicUses:13Used by:1262
Symbol 1262 ButtonUses:1260 1261Used by:1263
Symbol 1263 MovieClip {Principal}Uses:338 1241 1238 1244 1247 1250 1256 1259 1262 1112 1115 20 23 26Used by:1554
Symbol 1264 BitmapUsed by:1265
Symbol 1265 GraphicUses:1264Used by:1554
Symbol 1266 BitmapUsed by:1267
Symbol 1267 GraphicUses:1266Used by:1268
Symbol 1268 MovieClip {Creditos}Uses:1267 944Used by:1554
Symbol 1269 BitmapUsed by:1273 1276 1284 1292 1300 1308 1316 1324 1332 1340 1348 1356 1364 1372 1380 1388 1396 1404 1412 1420 1428
Symbol 1270 BitmapUsed by:1273 1280 1288 1296 1304 1312 1320 1328 1336 1344 1352 1360 1368 1376 1384 1392 1400 1408 1416 1424 1432
Symbol 1271 BitmapUsed by:1273 1275 1277 1279 1281 1283 1285 1287 1289 1291 1293 1295 1297 1299 1301 1303 1305 1307 1309 1311 1313 1315 1317 1319 1321 1323 1325 1327 1329 1331 1333 1335 1337 1339 1341 1343 1345 1347 1349 1351 1353 1355 1357 1359 1361 1363 1365 1367 1369 1371 1373 1375 1377 1379 1381 1383 1385 1387 1389 1391 1393 1395 1397 1399 1401 1403 1405 1407 1409 1411 1413 1415 1417 1419 1421 1423 1425 1427 1429 1431 1433
Symbol 1272 BitmapUsed by:1273 1277 1281 1285 1289 1293 1297 1301 1305 1309 1313 1317 1321 1325 1329 1333 1337 1341 1345 1349 1353 1357 1361 1365 1369 1373 1377 1381 1385 1389 1393 1397 1401 1405 1409 1413 1417 1421 1425 1429 1433
Symbol 1273 GraphicUses:1269 1270 1271 1272Used by:1554
Symbol 1274 BitmapUsed by:1275 1276 1279 1280 1283 1284 1287 1288 1291 1292 1295 1296 1299 1300 1303 1304 1307 1308 1311 1312 1315 1316 1319 1320 1323 1324 1327 1328 1331 1332 1335 1336 1339 1340 1343 1344 1347 1348 1351 1352 1355 1356 1359 1360 1363 1364 1367 1368 1371 1372 1375 1376 1379 1380 1383 1384 1387 1388 1391 1392 1395 1396 1399 1400 1403 1404 1407 1408 1411 1412 1415 1416 1419 1420 1423 1424 1427 1428 1431 1432
Symbol 1275 GraphicUses:1274 1271Used by:1278
Symbol 1276 GraphicUses:1274 1269Used by:1278
Symbol 1277 GraphicUses:1272 1271Used by:1278
Symbol 1278 MovieClipUses:1275 1276 1277Used by:1442 1554
Symbol 1279 GraphicUses:1274 1271Used by:1282
Symbol 1280 GraphicUses:1274 1270Used by:1282
Symbol 1281 GraphicUses:1272 1271Used by:1282
Symbol 1282 MovieClipUses:1279 1280 1281Used by:1442 1554
Symbol 1283 GraphicUses:1274 1271Used by:1286
Symbol 1284 GraphicUses:1274 1269Used by:1286
Symbol 1285 GraphicUses:1272 1271Used by:1286
Symbol 1286 MovieClipUses:1283 1284 1285Used by:1442 1554
Symbol 1287 GraphicUses:1274 1271Used by:1290
Symbol 1288 GraphicUses:1274 1270Used by:1290
Symbol 1289 GraphicUses:1272 1271Used by:1290
Symbol 1290 MovieClipUses:1287 1288 1289Used by:1442 1554
Symbol 1291 GraphicUses:1274 1271Used by:1294
Symbol 1292 GraphicUses:1274 1269Used by:1294
Symbol 1293 GraphicUses:1272 1271Used by:1294
Symbol 1294 MovieClipUses:1291 1292 1293Used by:1442 1554
Symbol 1295 GraphicUses:1274 1271Used by:1298
Symbol 1296 GraphicUses:1274 1270Used by:1298
Symbol 1297 GraphicUses:1272 1271Used by:1298
Symbol 1298 MovieClipUses:1295 1296 1297Used by:1442 1554
Symbol 1299 GraphicUses:1274 1271Used by:1302
Symbol 1300 GraphicUses:1274 1269Used by:1302
Symbol 1301 GraphicUses:1272 1271Used by:1302
Symbol 1302 MovieClipUses:1299 1300 1301Used by:1442 1554
Symbol 1303 GraphicUses:1274 1271Used by:1306
Symbol 1304 GraphicUses:1274 1270Used by:1306
Symbol 1305 GraphicUses:1272 1271Used by:1306
Symbol 1306 MovieClipUses:1303 1304 1305Used by:1442 1554
Symbol 1307 GraphicUses:1274 1271Used by:1310
Symbol 1308 GraphicUses:1274 1269Used by:1310
Symbol 1309 GraphicUses:1272 1271Used by:1310
Symbol 1310 MovieClipUses:1307 1308 1309Used by:1442 1554
Symbol 1311 GraphicUses:1274 1271Used by:1314
Symbol 1312 GraphicUses:1274 1270Used by:1314
Symbol 1313 GraphicUses:1272 1271Used by:1314
Symbol 1314 MovieClipUses:1311 1312 1313Used by:1442 1554
Symbol 1315 GraphicUses:1274 1271Used by:1318
Symbol 1316 GraphicUses:1274 1269Used by:1318
Symbol 1317 GraphicUses:1272 1271Used by:1318
Symbol 1318 MovieClipUses:1315 1316 1317Used by:1442 1554
Symbol 1319 GraphicUses:1274 1271Used by:1322
Symbol 1320 GraphicUses:1274 1270Used by:1322
Symbol 1321 GraphicUses:1272 1271Used by:1322
Symbol 1322 MovieClipUses:1319 1320 1321Used by:1442 1554
Symbol 1323 GraphicUses:1274 1271Used by:1326
Symbol 1324 GraphicUses:1274 1269Used by:1326
Symbol 1325 GraphicUses:1272 1271Used by:1326
Symbol 1326 MovieClipUses:1323 1324 1325Used by:1442 1554
Symbol 1327 GraphicUses:1274 1271Used by:1330
Symbol 1328 GraphicUses:1274 1270Used by:1330
Symbol 1329 GraphicUses:1272 1271Used by:1330
Symbol 1330 MovieClipUses:1327 1328 1329Used by:1442 1554
Symbol 1331 GraphicUses:1274 1271Used by:1334
Symbol 1332 GraphicUses:1274 1269Used by:1334
Symbol 1333 GraphicUses:1272 1271Used by:1334
Symbol 1334 MovieClipUses:1331 1332 1333Used by:1442 1554
Symbol 1335 GraphicUses:1274 1271Used by:1338
Symbol 1336 GraphicUses:1274 1270Used by:1338
Symbol 1337 GraphicUses:1272 1271Used by:1338
Symbol 1338 MovieClipUses:1335 1336 1337Used by:1442 1554
Symbol 1339 GraphicUses:1274 1271Used by:1342
Symbol 1340 GraphicUses:1274 1269Used by:1342
Symbol 1341 GraphicUses:1272 1271Used by:1342
Symbol 1342 MovieClipUses:1339 1340 1341Used by:1442 1554
Symbol 1343 GraphicUses:1274 1271Used by:1346
Symbol 1344 GraphicUses:1274 1270Used by:1346
Symbol 1345 GraphicUses:1272 1271Used by:1346
Symbol 1346 MovieClipUses:1343 1344 1345Used by:1442 1554
Symbol 1347 GraphicUses:1274 1271Used by:1350
Symbol 1348 GraphicUses:1274 1269Used by:1350
Symbol 1349 GraphicUses:1272 1271Used by:1350
Symbol 1350 MovieClipUses:1347 1348 1349Used by:1442 1554
Symbol 1351 GraphicUses:1274 1271Used by:1354
Symbol 1352 GraphicUses:1274 1270Used by:1354
Symbol 1353 GraphicUses:1272 1271Used by:1354
Symbol 1354 MovieClipUses:1351 1352 1353Used by:1442 1554
Symbol 1355 GraphicUses:1274 1271Used by:1358
Symbol 1356 GraphicUses:1274 1269Used by:1358
Symbol 1357 GraphicUses:1272 1271Used by:1358
Symbol 1358 MovieClipUses:1355 1356 1357Used by:1442 1554
Symbol 1359 GraphicUses:1274 1271Used by:1362
Symbol 1360 GraphicUses:1274 1270Used by:1362
Symbol 1361 GraphicUses:1272 1271Used by:1362
Symbol 1362 MovieClipUses:1359 1360 1361Used by:1442 1554
Symbol 1363 GraphicUses:1274 1271Used by:1366
Symbol 1364 GraphicUses:1274 1269Used by:1366
Symbol 1365 GraphicUses:1272 1271Used by:1366
Symbol 1366 MovieClipUses:1363 1364 1365Used by:1442 1554
Symbol 1367 GraphicUses:1274 1271Used by:1370
Symbol 1368 GraphicUses:1274 1270Used by:1370
Symbol 1369 GraphicUses:1272 1271Used by:1370
Symbol 1370 MovieClipUses:1367 1368 1369Used by:1442 1554
Symbol 1371 GraphicUses:1274 1271Used by:1374
Symbol 1372 GraphicUses:1274 1269Used by:1374
Symbol 1373 GraphicUses:1272 1271Used by:1374
Symbol 1374 MovieClipUses:1371 1372 1373Used by:1442 1554
Symbol 1375 GraphicUses:1274 1271Used by:1378
Symbol 1376 GraphicUses:1274 1270Used by:1378
Symbol 1377 GraphicUses:1272 1271Used by:1378
Symbol 1378 MovieClipUses:1375 1376 1377Used by:1442 1554
Symbol 1379 GraphicUses:1274 1271Used by:1382
Symbol 1380 GraphicUses:1274 1269Used by:1382
Symbol 1381 GraphicUses:1272 1271Used by:1382
Symbol 1382 MovieClipUses:1379 1380 1381Used by:1442 1554
Symbol 1383 GraphicUses:1274 1271Used by:1386
Symbol 1384 GraphicUses:1274 1270Used by:1386
Symbol 1385 GraphicUses:1272 1271Used by:1386
Symbol 1386 MovieClipUses:1383 1384 1385Used by:1442 1554
Symbol 1387 GraphicUses:1274 1271Used by:1390
Symbol 1388 GraphicUses:1274 1269Used by:1390
Symbol 1389 GraphicUses:1272 1271Used by:1390
Symbol 1390 MovieClipUses:1387 1388 1389Used by:1442 1554
Symbol 1391 GraphicUses:1274 1271Used by:1394
Symbol 1392 GraphicUses:1274 1270Used by:1394
Symbol 1393 GraphicUses:1272 1271Used by:1394
Symbol 1394 MovieClipUses:1391 1392 1393Used by:1442 1554
Symbol 1395 GraphicUses:1274 1271Used by:1398
Symbol 1396 GraphicUses:1274 1269Used by:1398
Symbol 1397 GraphicUses:1272 1271Used by:1398
Symbol 1398 MovieClip {ZooTransport_fla.mission31_button_268}Uses:1395 1396 1397Used by:1442 1554
Symbol 1399 GraphicUses:1274 1271Used by:1402
Symbol 1400 GraphicUses:1274 1270Used by:1402
Symbol 1401 GraphicUses:1272 1271Used by:1402
Symbol 1402 MovieClip {ZooTransport_fla.mission32_button_269}Uses:1399 1400 1401Used by:1442 1554
Symbol 1403 GraphicUses:1274 1271Used by:1406
Symbol 1404 GraphicUses:1274 1269Used by:1406
Symbol 1405 GraphicUses:1272 1271Used by:1406
Symbol 1406 MovieClip {ZooTransport_fla.mission33_button_270}Uses:1403 1404 1405Used by:1442 1554
Symbol 1407 GraphicUses:1274 1271Used by:1410
Symbol 1408 GraphicUses:1274 1270Used by:1410
Symbol 1409 GraphicUses:1272 1271Used by:1410
Symbol 1410 MovieClip {ZooTransport_fla.mission34_button_271}Uses:1407 1408 1409Used by:1442 1554
Symbol 1411 GraphicUses:1274 1271Used by:1414
Symbol 1412 GraphicUses:1274 1269Used by:1414
Symbol 1413 GraphicUses:1272 1271Used by:1414
Symbol 1414 MovieClip {ZooTransport_fla.mission35_button_272}Uses:1411 1412 1413Used by:1442 1554
Symbol 1415 GraphicUses:1274 1271Used by:1418
Symbol 1416 GraphicUses:1274 1270Used by:1418
Symbol 1417 GraphicUses:1272 1271Used by:1418
Symbol 1418 MovieClip {ZooTransport_fla.mission36_button_273}Uses:1415 1416 1417Used by:1442 1554
Symbol 1419 GraphicUses:1274 1271Used by:1422
Symbol 1420 GraphicUses:1274 1269Used by:1422
Symbol 1421 GraphicUses:1272 1271Used by:1422
Symbol 1422 MovieClip {ZooTransport_fla.mission37_button_274}Uses:1419 1420 1421Used by:1442 1554
Symbol 1423 GraphicUses:1274 1271Used by:1426
Symbol 1424 GraphicUses:1274 1270Used by:1426
Symbol 1425 GraphicUses:1272 1271Used by:1426
Symbol 1426 MovieClip {ZooTransport_fla.mission38_button_275}Uses:1423 1424 1425Used by:1442 1554
Symbol 1427 GraphicUses:1274 1271Used by:1430
Symbol 1428 GraphicUses:1274 1269Used by:1430
Symbol 1429 GraphicUses:1272 1271Used by:1430
Symbol 1430 MovieClip {ZooTransport_fla.mission39_button_276}Uses:1427 1428 1429Used by:1442 1554
Symbol 1431 GraphicUses:1274 1271Used by:1434
Symbol 1432 GraphicUses:1274 1270Used by:1434
Symbol 1433 GraphicUses:1272 1271Used by:1434
Symbol 1434 MovieClip {ZooTransport_fla.mission40_button_277}Uses:1431 1432 1433Used by:1442 1554
Symbol 1435 BitmapUsed by:1436
Symbol 1436 GraphicUses:1435Used by:1442
Symbol 1437 BitmapUsed by:1438 1439
Symbol 1438 GraphicUses:1437Used by:1440
Symbol 1439 GraphicUses:1437Used by:1440
Symbol 1440 MovieClipUses:1438 1439Used by:1442 1554
Symbol 1441 MovieClipUses:133Used by:1442
Symbol 1442 MovieClip {Misiones}Uses:1436 1278 1282 1286 1290 1294 1298 1302 1306 1310 1314 1318 1322 1326 1330 1334 1338 1342 1346 1350 1354 1358 1362 1366 1370 1374 1378 1382 1386 1390 1394 1398 1402 1406 1410 1414 1418 1422 1426 1430 1434 944 1112 1115 1440 1441Used by:1554
Symbol 1443 MovieClipUses:9Used by:1444 1450
Symbol 1444 MovieClipUses:6 1443Used by:1452 1554
Symbol 1445 BitmapUsed by:1446
Symbol 1446 GraphicUses:1445Used by:1452
Symbol 1447 BitmapUsed by:1448
Symbol 1448 GraphicUses:1447Used by:1449
Symbol 1449 MovieClipUses:1448Used by:1452
Symbol 1450 MovieClipUses:569 1443Used by:1452
Symbol 1451 GraphicUses:645 694Used by:1452
Symbol 1452 MovieClip {ZooTransport_fla.intro_splash_tanoku_283}Uses:1446 1449 1450 1444 1451Used by:1554  Timeline
Symbol 1453 GraphicUsed by:1454
Symbol 1454 MovieClip {ZooTransport_fla.sponsor_mc_286}Uses:1453Used by:1554
Symbol 1455 MovieClipUsed by:1554
Symbol 1456 MovieClipUsed by:1554
Symbol 1457 BitmapUsed by:1458
Symbol 1458 GraphicUses:1457Used by:1459
Symbol 1459 MovieClipUses:1458Used by:1470 1554
Symbol 1460 BitmapUsed by:1461
Symbol 1461 GraphicUses:1460Used by:1462
Symbol 1462 MovieClipUses:1461Used by:1469 1554
Symbol 1463 BitmapUsed by:1464
Symbol 1464 GraphicUses:1463Used by:1465
Symbol 1465 MovieClipUses:1464Used by:1471 1554
Symbol 1466 BitmapUsed by:1467
Symbol 1467 GraphicUses:1466Used by:1468
Symbol 1468 MovieClipUses:1467Used by:1472 1473 1554
Symbol 1469 MovieClipUses:1462Used by:1554
Symbol 1470 MovieClipUses:1459Used by:1554
Symbol 1471 MovieClipUses:1465Used by:1554
Symbol 1472 MovieClipUses:1468Used by:1554
Symbol 1473 MovieClipUses:1468Used by:1554
Symbol 1474 GraphicUses:978 977Used by:1554
Symbol 1475 GraphicUsed by:1480
Symbol 1476 GraphicUsed by:1480
Symbol 1477 GraphicUsed by:1480
Symbol 1478 GraphicUsed by:1480
Symbol 1479 GraphicUsed by:1480
Symbol 1480 MovieClipUses:1475 133 1476 1477 1478 1479Used by:1554
Symbol 1481 BitmapUsed by:1482
Symbol 1482 GraphicUses:1481Used by:1483
Symbol 1483 MovieClipUses:1482Used by:1484
Symbol 1484 MovieClipUses:1483Used by:1554
Symbol 1485 BitmapUsed by:1486
Symbol 1486 GraphicUses:1485Used by:1487
Symbol 1487 MovieClipUses:1486Used by:1539 1554
Symbol 1488 BitmapUsed by:1489
Symbol 1489 GraphicUses:1488Used by:1490
Symbol 1490 MovieClipUses:1489Used by:1554
Symbol 1491 BitmapUsed by:1492 1493
Symbol 1492 GraphicUses:1491 56 54Used by:1554
Symbol 1493 GraphicUses:1491Used by:1494
Symbol 1494 MovieClipUses:1493Used by:1554
Symbol 1495 BitmapUsed by:1498
Symbol 1496 BitmapUsed by:1498
Symbol 1497 BitmapUsed by:1498
Symbol 1498 GraphicUses:1495 1496 1497Used by:1554
Symbol 1499 BitmapUsed by:1501
Symbol 1500 BitmapUsed by:1501
Symbol 1501 GraphicUses:1499 1500Used by:1505
Symbol 1502 BitmapUsed by:1504
Symbol 1503 BitmapUsed by:1504
Symbol 1504 GraphicUses:1502 1503Used by:1505
Symbol 1505 MovieClipUses:1501 1504Used by:1554
Symbol 1506 BitmapUsed by:1512
Symbol 1507 BitmapUsed by:1512
Symbol 1508 BitmapUsed by:1512
Symbol 1509 BitmapUsed by:1512
Symbol 1510 BitmapUsed by:1512
Symbol 1511 BitmapUsed by:1512
Symbol 1512 GraphicUses:1254 1251 1506 1507 1216 1508 1509 1253 1510 1511Used by:1554
Symbol 1513 BitmapUsed by:1514
Symbol 1514 GraphicUses:1513Used by:1515
Symbol 1515 MovieClipUses:1514Used by:1554
Symbol 1516 BitmapUsed by:1518
Symbol 1517 BitmapUsed by:1518
Symbol 1518 GraphicUses:1516 1517Used by:1554
Symbol 1519 BitmapUsed by:1520
Symbol 1520 GraphicUses:1519Used by:1521
Symbol 1521 MovieClipUses:1520Used by:1554
Symbol 1522 BitmapUsed by:1525
Symbol 1523 BitmapUsed by:1525
Symbol 1524 BitmapUsed by:1525
Symbol 1525 GraphicUses:1522 1523 1524Used by:1554
Symbol 1526 BitmapUsed by:1527
Symbol 1527 GraphicUses:1526Used by:1528
Symbol 1528 MovieClipUses:1527Used by:1529 1554
Symbol 1529 MovieClipUses:1528Used by:1554
Symbol 1530 BitmapUsed by:1535
Symbol 1531 BitmapUsed by:1535
Symbol 1532 BitmapUsed by:1535
Symbol 1533 BitmapUsed by:1535
Symbol 1534 BitmapUsed by:1535
Symbol 1535 GraphicUses:1530 1531 1532 1533 1534Used by:1554
Symbol 1536 BitmapUsed by:1538
Symbol 1537 BitmapUsed by:1538
Symbol 1538 GraphicUses:1536 1537Used by:1554
Symbol 1539 MovieClip {ZooTransport_fla.objetivo_309}Uses:1487Used by:1554
Symbol 1540 GraphicUsed by:1541
Symbol 1541 MovieClipUses:1540Used by:1542
Symbol 1542 MovieClip {ZooTransport_fla.satelite_310}Uses:1541Used by:1554
Symbol 1543 BitmapUsed by:1544
Symbol 1544 GraphicUses:1543Used by:1554
Symbol 1545 Sound {claxon}Used by:1554
Symbol 1546 Sound {click}Used by:1554
Symbol 1547 Sound {cuervos}Used by:1554
Symbol 1548 Sound {estrellas}Used by:1554
Symbol 1549 Sound {humo}Used by:1554
Symbol 1550 Sound {logro}Used by:1554
Symbol 1551 Sound {motor}Used by:1554
Symbol 1552 Sound {ingame1}Used by:1554
Symbol 1553 Sound {principal1}Used by:1554
Symbol 1554 MovieClip {preload}Uses:133 137 140 143 145 149 150 155 158 162 165 169 170 172 176 179 181 184 186 189 192 194 198 199 202 203 206 207 209 211 232 239 243 245 247 248 265 268 270 272 274 276 278 280 282 312 314 316 318 322 344 346 351 364 368 381 383 390 394 401 405 412 416 423 427 440 444 445 449 450 456 459 461 464 465 468 473 480 484 486 491 494 496 499 6 571 573 575 576 577 580 583 586 589 592 625 912 934 936 945 966 975 976 981 982 987 989 992 994 998 1003 1006 1009 1010 1014 1018 1021 1070 1071 1074 1078 1080 1082 1084 1095 1098 1101 1104 1188 1191 1194 1197 1205 1210 1213 40 130 1215 1218 1238 22 1263 1265 1268 1273 1278 1282 1286 1290 1294 1298 1302 1306 1310 1314 1318 1322 1326 1330 1334 1338 1342 1346 1350 1354 1358 1362 1366 1370 1374 1378 1382 1386 1390 1394 1398 1402 1406 1410 1414 1418 1422 1426 1430 1434 1442 1444 1452 1454 1455 1456 1459 1462 1465 1468 1469 1470 1471 1472 1473 1034 1038 1042 1046 1050 1054 1058 1062 1474 1480 1484 1487 1490 1492 1494 1498 1505 63 36 1512 1105 1515 1518 1521 1525 1528 1529 1535 1440 1538 1539 1542 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553Used by:Timeline
Symbol 1555 GraphicUsed by:1556
Symbol 1556 MovieClipUses:1555Used by:Timeline
Symbol 1557 GraphicUsed by:1572
Symbol 1558 GraphicUsed by:1572
Symbol 1559 GraphicUsed by:1572
Symbol 1560 SoundUsed by:1572
Symbol 1561 SoundUsed by:1572
Symbol 1562 GraphicUsed by:1572
Symbol 1563 GraphicUsed by:1564
Symbol 1564 MovieClipUses:1563Used by:1572
Symbol 1565 SoundUsed by:1572
Symbol 1566 SoundUsed by:1572
Symbol 1567 SoundUsed by:1572
Symbol 1568 GraphicUsed by:1569
Symbol 1569 ButtonUses:1568Used by:1572
Symbol 1570 SoundUsed by:1572
Symbol 1571 SoundUsed by:1572
Symbol 1572 MovieClip {ZooTransport_fla.ag_intro_mc_313}Uses:1557 1558 1559 1560 1561 1562 1564 1565 1566 1567 1569 1570 1571Used by:Timeline
Symbol 1573 MovieClipUses:104Used by:1577
Symbol 1574 GraphicUsed by:1577
Symbol 1575 FontUsed by:1576
Symbol 1576 EditableTextUses:1575Used by:1577
Symbol 1577 MovieClip {ZooTransport_fla.FPS_316}Uses:1573 1574 1576Used by:Timeline

Instance Names

"txt_denegado"Frame 1Symbol 132 EditableText
"intro"Frame 4Symbol 1452 MovieClip {ZooTransport_fla.intro_splash_tanoku_283}
"jugar"Symbol 27 MovieClip {preloader_sc} Frame 1Symbol 15 Button
"porc"Symbol 27 MovieClip {preloader_sc} Frame 1Symbol 17 EditableText
"boton_sponsor"Symbol 27 MovieClip {preloader_sc} Frame 1Symbol 20 Button
"boton_tanoku"Symbol 27 MovieClip {preloader_sc} Frame 1Symbol 23 Button
"boton_twitter"Symbol 27 MovieClip {preloader_sc} Frame 1Symbol 26 Button
"cerrar_dialogo"Symbol 130 MovieClip {dialogosEnJuego} Frame 1Symbol 58 Button
"achi1"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi5"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi9"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi13"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi17"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi21"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi2"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi6"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi10"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi14"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi18"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi22"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi3"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi7"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi11"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi15"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi19"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi23"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi4"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi8"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi12"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi16"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi20"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"achi24"Symbol 945 MovieClip {Logros} Frame 1Symbol 941 MovieClip
"salir"Symbol 945 MovieClip {Logros} Frame 1Symbol 944 Button
"desc"Symbol 945 MovieClip {Logros} Frame 1Symbol 934 MovieClip
"salir"Symbol 975 MovieClip {Final} Frame 1Symbol 140 Button
"nivel_cargar"Symbol 1021 MovieClip {menuCargar} Frame 1Symbol 1020 EditableText
"boton_cargar_nivel"Symbol 1021 MovieClip {menuCargar} Frame 1Symbol 998 Button
"boton_salir_cargar"Symbol 1021 MovieClip {menuCargar} Frame 1Symbol 58 Button
"lista"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1023 MovieClip {fl.controls.TileList}
"boton_borrar_todo"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 155 Button
"boton_cargar"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 158 Button
"boton_probar"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 184 Button
"boton_salir"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 189 Button
"boton_guardar"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 165 Button
"boton_goma"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 149 Button
"boton_matriz"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 169 Button
"bomba_01"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1034 MovieClip
"bomba_02"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1038 MovieClip
"bomba_03"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1042 MovieClip
"bomba_04"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1046 MovieClip
"bomba_05"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1050 MovieClip
"bomba_06"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1054 MovieClip
"bomba_07"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1058 MovieClip
"bomba_08"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1062 MovieClip
"turnos"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1063 MovieClip {fl.controls.NumericStepper}
"info_fondo"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1065 EditableText
"fondo_txt"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1066 EditableText
"boton_goma"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1067 Button
"boton_matriz"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1068 Button
"boton_comunes"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 199 MovieClip
"boton_no_solidos"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 203 MovieClip
"boton_solidos"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 207 MovieClip
"boton_goma2"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 150 MovieClip
"boton_matriz2"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 170 MovieClip
"boton_ordenar"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 181 MovieClip
"boton_ayuda"Symbol 1070 MovieClip {menuCatalogoTiles} Frame 1Symbol 1069 Button
"nivel_guardar"Symbol 1074 MovieClip {menuGuardar} Frame 1Symbol 1073 EditableText
"boton_salir_guardar"Symbol 1074 MovieClip {menuGuardar} Frame 1Symbol 58 Button
"boton_copiar"Symbol 1074 MovieClip {menuGuardar} Frame 1Symbol 1006 Button
"boton_subir_nivel"Symbol 1074 MovieClip {menuGuardar} Frame 1Symbol 1009 Button
"selector"Symbol 1078 MovieClip {menuMinimapa} Frame 1Symbol 1076 MovieClip
"boton_minimizar_minimapa"Symbol 1078 MovieClip {menuMinimapa} Frame 1Symbol 172 Button
"cerrar_ayuda"Symbol 1080 MovieClip {panelAyuda} Frame 1Symbol 58 Button
"boton_si_borrar"Symbol 1082 MovieClip {panelBorrarTodo} Frame 1Symbol 192 Button
"boton_no_borrar"Symbol 1082 MovieClip {panelBorrarTodo} Frame 1Symbol 176 Button
"boton_ok_error"Symbol 1084 MovieClip {panelErrorEditor} Frame 1Symbol 179 Button
"boton_subir_nivel"Symbol 1095 MovieClip {panelSubirNivel} Frame 1Symbol 1014 Button
"boton_cancelar_nivel"Symbol 1095 MovieClip {panelSubirNivel} Frame 1Symbol 987 Button
"nombre_nivel"Symbol 1095 MovieClip {panelSubirNivel} Frame 1Symbol 1090 EditableText
"nombre_autor"Symbol 1095 MovieClip {panelSubirNivel} Frame 1Symbol 1091 EditableText
"comentarios"Symbol 1095 MovieClip {panelSubirNivel} Frame 1Symbol 1092 EditableText
"cadena_nivel"Symbol 1095 MovieClip {panelSubirNivel} Frame 1Symbol 1093 EditableText
"subido"Symbol 1095 MovieClip {panelSubirNivel} Frame 1Symbol 1094 EditableText
"reiniciar"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1108 Button
"salir"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1109 Button
"musica"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1112 MovieClip
"sonido"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1115 MovieClip
"estado_camion"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1116 EditableText
"avanzar"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1117 Button
"retroceder"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1118 Button
"solucion"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1119 Button
"nom_nivel"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1159 MovieClip
"num_cajas"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1174 MovieClip
"carga"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1185 MovieClip
"info"Symbol 1187 MovieClip {menuEnJuego} Frame 1Symbol 1186 EditableText
"salir"Symbol 1205 MovieClip {menuMisionCumplida} Frame 1Symbol 140 Button
"siguiente"Symbol 1205 MovieClip {menuMisionCumplida} Frame 1Symbol 143 Button
"reintentar_cumplida"Symbol 1205 MovieClip {menuMisionCumplida} Frame 1Symbol 137 Button
"editar_cumplida"Symbol 1205 MovieClip {menuMisionCumplida} Frame 1Symbol 981 Button
"salir"Symbol 1210 MovieClip {menuMisionFallida} Frame 1Symbol 140 Button
"reiniciar"Symbol 1210 MovieClip {menuMisionFallida} Frame 1Symbol 137 Button
"reintentar_fallida"Symbol 1210 MovieClip {menuMisionFallida} Frame 1Symbol 137 Button
"editar_fallida"Symbol 1210 MovieClip {menuMisionFallida} Frame 1Symbol 981 Button
"puntuaciones"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1244 Button
"logros"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1247 Button
"creditos"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1250 Button
"editor"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1256 Button
"jugar"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1259 Button
"moregames"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1262 Button
"musica"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1112 MovieClip
"sonido"Symbol 1263 MovieClip {Principal} Frame 1Symbol 1115 MovieClip
"sponsor"Symbol 1263 MovieClip {Principal} Frame 1Symbol 20 Button
"tanoku"Symbol 1263 MovieClip {Principal} Frame 1Symbol 23 Button
"twitter"Symbol 1263 MovieClip {Principal} Frame 1Symbol 26 Button
"salir"Symbol 1268 MovieClip {Creditos} Frame 1Symbol 944 Button
"m1"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1278 MovieClip
"m2"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1282 MovieClip
"m3"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1286 MovieClip
"m4"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1290 MovieClip
"m5"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1294 MovieClip
"m6"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1298 MovieClip
"m7"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1302 MovieClip
"m8"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1306 MovieClip
"m9"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1310 MovieClip
"m10"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1314 MovieClip
"m11"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1318 MovieClip
"m12"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1322 MovieClip
"m13"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1326 MovieClip
"m14"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1330 MovieClip
"m15"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1334 MovieClip
"m16"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1338 MovieClip
"m17"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1342 MovieClip
"m18"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1346 MovieClip
"m19"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1350 MovieClip
"m20"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1354 MovieClip
"m21"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1358 MovieClip
"m22"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1362 MovieClip
"m23"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1366 MovieClip
"m24"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1370 MovieClip
"m25"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1374 MovieClip
"m26"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1378 MovieClip
"m27"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1382 MovieClip
"m28"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1386 MovieClip
"m29"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1390 MovieClip
"m30"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1394 MovieClip
"m31"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1398 MovieClip {ZooTransport_fla.mission31_button_268}
"m32"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1402 MovieClip {ZooTransport_fla.mission32_button_269}
"m33"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1406 MovieClip {ZooTransport_fla.mission33_button_270}
"m34"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1410 MovieClip {ZooTransport_fla.mission34_button_271}
"m35"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1414 MovieClip {ZooTransport_fla.mission35_button_272}
"m36"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1418 MovieClip {ZooTransport_fla.mission36_button_273}
"m37"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1422 MovieClip {ZooTransport_fla.mission37_button_274}
"m38"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1426 MovieClip {ZooTransport_fla.mission38_button_275}
"m39"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1430 MovieClip {ZooTransport_fla.mission39_button_276}
"m40"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1434 MovieClip {ZooTransport_fla.mission40_button_277}
"salir"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 944 Button
"musica"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1112 MovieClip
"sonido"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1115 MovieClip
"check_ayuda"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1440 MovieClip
"todos_niveles"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1441 MovieClip
"borrar_partida"Symbol 1442 MovieClip {Misiones} Frame 1Symbol 1441 MovieClip
"mirilla"Symbol 1539 MovieClip {ZooTransport_fla.objetivo_309} Frame 1Symbol 1487 MovieClip
"area"Symbol 1542 MovieClip {ZooTransport_fla.satelite_310} Frame 1Symbol 1541 MovieClip
"iBar"Symbol 1577 MovieClip {ZooTransport_fla.FPS_316} Frame 1Symbol 1573 MovieClip
"tf"Symbol 1577 MovieClip {ZooTransport_fla.FPS_316} Frame 2Symbol 1576 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.




http://swfchan.com/19/90121/info.shtml
Created: 28/3 -2019 15:06:48 Last modified: 28/3 -2019 15:06:48 Server time: 10/05 -2024 11:44:15